{
	"info": {
		"_postman_id": "5af3691a-b168-4d77-93dc-77c3b4de7e73",
		"name": "Maintenance Platform API",
		"description": "Auto-generated API documentation.\nGenerated: 2026-08-19 21:35:03\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.\n\nReorganized into: Authentication, Client, Technician, Admin, Requests / Jobs, Assignments, Statuses, Notifications, Files, Other Modules, Company — matching docs/api/01-authentication.md..11-company.md exactly.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "34336906"
	},
	"item": [
		{
			"name": "Guest",
			"item": [
				{
					"name": "01. Client Auth (Register/Login/Verify/Reset)",
					"item": [
						{
							"name": "Register New Account",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Karim Elkady\",\n    \"email\": \"karim.register@example.com\",\n    \"phone\": \"1055512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/register",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"register"
									]
								},
								"description": "**Route:** `client.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid registration",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Karim Elkady\",\n    \"email\": \"karim.register@example.com\",\n    \"phone\": \"1055512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `client.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification OTP has been sent to your email. Please verify your account to continue.\",\n    \"data\": {\n        \"verification_token\": \"736c7889-d429-4596-b7f2-312d281cc158\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing fields",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Karim Elkady\",\n    \"email\": \"karim.register@example.com\",\n    \"phone\": \"1055512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `client.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate email",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Karim Elkady\",\n    \"email\": \"karim.register@example.com\",\n    \"phone\": \"1055512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `client.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This email address is already registered.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Account (OTP)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"client_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"karim.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"736c7889-d429-4596-b7f2-312d281cc158\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/verify",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"verify"
									]
								},
								"description": "**Route:** `client.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid registration code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"karim.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"736c7889-d429-4596-b7f2-312d281cc158\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `client.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Email verified successfully\",\n    \"data\": {\n        \"id\": 59,\n        \"name\": \"Karim Elkady\",\n        \"email\": \"karim.register@example.com\",\n        \"phone\": \"1055512345\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"is_active\": true,\n        \"is_verified\": true,\n        \"is_banned\": false,\n        \"avatar\": null,\n        \"settings\": {\n            \"locale\": \"ar\",\n            \"allow_notifications\": true\n        },\n        \"last_login_at\": \"2026-08-20T10:51:54.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:54.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0,\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0L2FwaS92MS9jbGllbnQvYXV0aC92ZXJpZnkiLCJpYXQiOjE3ODcyMjMxMTQsImV4cCI6MTc5MjQwNzExNCwibmJmIjoxNzg3MjIzMTE0LCJqdGkiOiJPc21BdGV2eGM0dGtORXJZIiwic3ViIjoiNTkiLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.rZP9Cim6NuS64shPs9sUCk9mizmJv-qveLeoLMxKyo0\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid/expired token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"karim.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"736c7889-d429-4596-b7f2-312d281cc158\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `client.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Expired or invalid verification code.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"karim.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"736c7889-d429-4596-b7f2-312d281cc158\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `client.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter the verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Resend Verification Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"verification_token\": \"cb750c98-0938-43b9-8247-2cc9f0c53a5b\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/resend-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"resend-code"
									]
								},
								"description": "**Route:** `client.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"cb750c98-0938-43b9-8247-2cc9f0c53a5b\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `client.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"cb750c98-0938-43b9-8247-2cc9f0c53a5b\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"cb750c98-0938-43b9-8247-2cc9f0c53a5b\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `client.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid or expired verification token.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"cb750c98-0938-43b9-8247-2cc9f0c53a5b\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `client.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Token field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Login",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"client_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"individual@info.com\",\n    \"password\": \"password\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/login",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"login"
									]
								},
								"description": "**Route:** `client.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid credentials",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"login.user@example.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `client.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"You logged in successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Individual User\",\n        \"email\": \"individual@info.com\",\n        \"phone\": \"966500000003\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"is_active\": true,\n        \"is_verified\": true,\n        \"is_banned\": false,\n        \"avatar\": null,\n        \"settings\": {\n            \"locale\": \"ar\",\n            \"allow_notifications\": true\n        },\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T18:37:22.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0,\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvYXBpL3YxL2NsaWVudC9hdXRoL2xvZ2luIiwiaWF0IjoxNzg3MzEwMzM2LCJleHAiOjE3OTI0OTQzMzYsIm5iZiI6MTc4NzMxMDMzNiwianRpIjoiZXZ6RU9xR2RkTjhRdVRnNiIsInN1YiI6IjMiLCJwcnYiOiIyM2JkNWM4OTQ5ZjYwMGFkYjM5ZTcwMWM0MDA4NzJkYjdhNTk3NmY3In0.erhLEZOqxYaIOqE9denJqxCUAAPNxyyjE9_gk8lvmco\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - wrong password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"login.user@example.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `client.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid email or password, please try again!\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"login.user@example.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `client.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - account not active",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"login.user@example.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `client.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Your account is pending activation. Please verify your account.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Request Password Reset",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"suspended.individual@info.com\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/forgot-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"forgot-password"
									]
								},
								"description": "**Route:** `client.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - known login",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `client.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"a7ee8ed1-ec5a-4653-8904-869d2ed2752c\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing login",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `client.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email or phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Reset Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"suspended.individual@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"a7ee8ed1-ec5a-4653-8904-869d2ed2752c\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/verify-reset-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"verify-reset-code"
									]
								},
								"description": "**Route:** `client.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"44700b34-0e36-486f-9672-ec6c7782c2a4\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `client.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Code verified. You can now set a new password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid code (already verified/consumed)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"44700b34-0e36-486f-9672-ec6c7782c2a4\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `client.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Verification code has already been verified.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reset Password",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"suspended.individual@info.com\",\n    \"token\": \"a7ee8ed1-ec5a-4653-8904-869d2ed2752c\",\n    \"password\": \"NewPassword123!\",\n    \"password_confirmation\": \"NewPassword123!\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/reset-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"reset-password"
									]
								},
								"description": "**Route:** `client.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid verified token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\",\n    \"token\": \"44700b34-0e36-486f-9672-ec6c7782c2a4\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `client.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password reset successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - password confirmation mismatch",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\",\n    \"token\": \"44700b34-0e36-486f-9672-ec6c7782c2a4\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `client.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Password confirmation does not match.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - code not verified yet (business rule)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"reset.user@example.com\",\n    \"token\": \"44700b34-0e36-486f-9672-ec6c7782c2a4\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `client.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `individual@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please verify the code before continuing.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Contact Client",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Sara Ahmed\",\n    \"email\": \"sara@example.com\",\n    \"phone\": \"+201000000000\",\n    \"subject\": \"Question about pricing\",\n    \"message\": \"Do you offer discounts for repeat customers?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/contact",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"contact"
									]
								},
								"description": "**Route:** `client.contact`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `message`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** public endpoint, no bearer token required."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Sara Ahmed\",\n    \"email\": \"sara@example.com\",\n    \"phone\": \"+201000000000\",\n    \"subject\": \"Question about pricing\",\n    \"message\": \"Do you offer discounts for repeat customers?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/contact",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"contact"
											]
										},
										"description": "**Route:** `client.contact`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `message`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Your message has been sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Sara Ahmed\",\n    \"email\": \"sara@example.com\",\n    \"phone\": \"+201000000000\",\n    \"subject\": \"Question about pricing\",\n    \"message\": \"Do you offer discounts for repeat customers?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/contact",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"contact"
											]
										},
										"description": "**Route:** `client.contact`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `message`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email address.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "02. Company Auth (Register/Login/Verify/Reset)",
					"item": [
						{
							"name": "Register New Account",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"legal_name\": \"Acme Maintenance Co\",\n    \"email\": \"acme.register@example.com\",\n    \"phone\": \"1155512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"vat_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"account_owner_phone\": \"1155512399\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/register",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"register"
									]
								},
								"description": "**Route:** `company.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `vat_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `CompanyRegisterRequest` validates a field named `vat_number`, but `CompanyAuthService::register()` reads `$data['tax_number']` — a key that was never in the validated array. The VAT number submitted at registration is silently discarded; `company_profiles.tax_number` ends up `null` for every company created this way (the profile-update path validates `tax_number` correctly, so this is specific to registration). See `app/Services/Company/Auth/CompanyAuthService.php:102,170` vs `app/Http/Requests/Company/Auth/CompanyRegisterRequest.php:19`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid registration",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance Co\",\n    \"email\": \"acme.register@example.com\",\n    \"phone\": \"1155512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"vat_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"account_owner_phone\": \"1155512399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `company.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `vat_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `CompanyRegisterRequest` validates a field named `vat_number`, but `CompanyAuthService::register()` reads `$data['tax_number']` — a key that was never in the validated array. The VAT number submitted at registration is silently discarded; `company_profiles.tax_number` ends up `null` for every company created this way (the profile-update path validates `tax_number` correctly, so this is specific to registration). See `app/Services/Company/Auth/CompanyAuthService.php:102,170` vs `app/Http/Requests/Company/Auth/CompanyRegisterRequest.php:19`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification OTP has been sent to your email. Please verify your account to continue.\",\n    \"data\": {\n        \"verification_token\": \"a3df4b3a-5baa-481e-b43e-ebc857fe6151\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing fields",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance Co\",\n    \"email\": \"acme.register@example.com\",\n    \"phone\": \"1155512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"vat_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"account_owner_phone\": \"1155512399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `company.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `vat_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `CompanyRegisterRequest` validates a field named `vat_number`, but `CompanyAuthService::register()` reads `$data['tax_number']` — a key that was never in the validated array. The VAT number submitted at registration is silently discarded; `company_profiles.tax_number` ends up `null` for every company created this way (the profile-update path validates `tax_number` correctly, so this is specific to registration). See `app/Services/Company/Auth/CompanyAuthService.php:102,170` vs `app/Http/Requests/Company/Auth/CompanyRegisterRequest.php:19`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate email",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance Co\",\n    \"email\": \"acme.register@example.com\",\n    \"phone\": \"1155512345\",\n    \"phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"vat_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"account_owner_phone\": \"1155512399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `company.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `vat_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `CompanyRegisterRequest` validates a field named `vat_number`, but `CompanyAuthService::register()` reads `$data['tax_number']` — a key that was never in the validated array. The VAT number submitted at registration is silently discarded; `company_profiles.tax_number` ends up `null` for every company created this way (the profile-update path validates `tax_number` correctly, so this is specific to registration). See `app/Services/Company/Auth/CompanyAuthService.php:102,170` vs `app/Http/Requests/Company/Auth/CompanyRegisterRequest.php:19`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This email address is already registered.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Account (OTP)",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"acme.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"a3df4b3a-5baa-481e-b43e-ebc857fe6151\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/verify",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"verify"
									]
								},
								"description": "**Route:** `company.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid registration code (account created, pending admin activation)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"acme.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"a3df4b3a-5baa-481e-b43e-ebc857fe6151\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `company.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Your account is awaiting admin approval. You will be notified once it is activated.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid/expired token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"acme.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"a3df4b3a-5baa-481e-b43e-ebc857fe6151\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `company.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Expired or invalid verification code.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"acme.register@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"a3df4b3a-5baa-481e-b43e-ebc857fe6151\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `company.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter the verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Resend Verification Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"verification_token\": \"d0f54e9c-b0c1-449f-bced-e2e3592d9eaf\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/resend-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"resend-code"
									]
								},
								"description": "**Route:** `company.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"d0f54e9c-b0c1-449f-bced-e2e3592d9eaf\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `company.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"d0f54e9c-b0c1-449f-bced-e2e3592d9eaf\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"d0f54e9c-b0c1-449f-bced-e2e3592d9eaf\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `company.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid or expired verification token.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"d0f54e9c-b0c1-449f-bced-e2e3592d9eaf\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `company.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Token field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Login",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"company_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/login",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"login"
									]
								},
								"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid credentials",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"You logged in successfully\",\n    \"data\": {\n        \"id\": 10,\n        \"name\": \"Gulf Maintenance Group\",\n        \"email\": \"gulf.maintenance@info.com\",\n        \"phone\": \"966500000102\",\n        \"user_type\": \"company\",\n        \"user_type_label\": \"Company\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"is_active\": true,\n        \"is_verified\": true,\n        \"is_banned\": false,\n        \"avatar\": null,\n        \"settings\": {\n            \"locale\": \"ar\",\n            \"allow_notifications\": true\n        },\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-22T19:08:32.000000Z\",\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgxMjMvYXBpL3YxL2NvbXBhbnkvYXV0aC9sb2dpbiIsImlhdCI6MTc4NzQyODI2MCwiZXhwIjoxNzkyNjEyMjYwLCJuYmYiOjE3ODc0MjgyNjAsImp0aSI6IkxkdnRpdG1JaHp5MEZpM0MiLCJzdWIiOiIxMCIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.AoYcRl8H6BBIAxSbrz2nve656ZHqsIP6iGKqja7wIi4\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - wrong password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid email or password, please try again!\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - company account pending admin activation",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Your account is awaiting admin approval. You will be notified once it is activated.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 403 Forbidden: 403 Error - non-company account rejected",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `company.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Access denied. Company account required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Request Password Reset",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"gulf.maintenance@info.com\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/forgot-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"forgot-password"
									]
								},
								"description": "**Route:** `company.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - known login",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `company.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"80673f93-fa84-4297-8886-60619feb2018\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing login",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `company.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email or phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Reset Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/verify-reset-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"verify-reset-code"
									]
								},
								"description": "**Route:** `company.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `company.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Code verified. You can now set a new password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid code (already verified/consumed)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `company.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Verification code has already been verified.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reset Password",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/reset-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"reset-password"
									]
								},
								"description": "**Route:** `company.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid verified token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `company.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password reset successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - password confirmation mismatch",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `company.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Password confirmation does not match.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - code not verified yet (business rule)",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"gulf.maintenance@info.com\",\n    \"token\": \"80673f93-fa84-4297-8886-60619feb2018\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `company.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gulf.maintenance@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please verify the code before continuing.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03. Technician Auth (Register/Login/Verify/Reset)",
					"item": [
						{
							"name": "Register New Account",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Ahmed Ali\",\n    \"email\": \"ahmed.tech@example.com\",\n    \"phone\": \"0501234567\",\n    \"phone_code\": \"966\",\n    \"id_number\": \"1234567890\",\n    \"address\": \"123 Main St\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"category_id\": 2,\n    \"region_ids\": [\n        1\n    ],\n    \"years_experience\": 5,\n    \"daily_order_capacity\": 5\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/register",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"register"
									]
								},
								"description": "**Route:** `technician.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `region_ids`\n- **Description:** Coverage Areas\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `region_ids.*`\n- **Description:** Region ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `personal_photo`\n- **Description:** Personal Photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National ID (Front)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National ID (Back)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** CV/Resume\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid registration",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Ali\",\n    \"email\": \"ahmed.tech@example.com\",\n    \"phone\": \"0501234567\",\n    \"phone_code\": \"966\",\n    \"id_number\": \"1234567890\",\n    \"address\": \"123 Main St\",\n    \"country_id\": 59,\n    \"governorate_id\": 3,\n    \"region_id\": 2,\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"category_id\": 41,\n    \"region_ids\": [\n        2\n    ],\n    \"years_experience\": 5,\n    \"daily_order_capacity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `technician.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `region_ids`\n- **Description:** Coverage Areas\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `region_ids.*`\n- **Description:** Region ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `personal_photo`\n- **Description:** Personal Photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National ID (Front)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National ID (Back)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** CV/Resume\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification OTP has been sent to your email. Please verify your account to continue.\",\n    \"data\": {\n        \"verification_token\": \"0e7c4554-a2f3-4374-9f02-aa14342fdb39\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing fields",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Ali\",\n    \"email\": \"ahmed.tech@example.com\",\n    \"phone\": \"0501234567\",\n    \"phone_code\": \"966\",\n    \"id_number\": \"1234567890\",\n    \"address\": \"123 Main St\",\n    \"country_id\": 59,\n    \"governorate_id\": 3,\n    \"region_id\": 2,\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"category_id\": 41,\n    \"region_ids\": [\n        2\n    ],\n    \"years_experience\": 5,\n    \"daily_order_capacity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `technician.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `region_ids`\n- **Description:** Coverage Areas\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `region_ids.*`\n- **Description:** Region ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `personal_photo`\n- **Description:** Personal Photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National ID (Front)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National ID (Back)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** CV/Resume\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your full name.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate email",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Ali\",\n    \"email\": \"ahmed.tech@example.com\",\n    \"phone\": \"0501234567\",\n    \"phone_code\": \"966\",\n    \"id_number\": \"1234567890\",\n    \"address\": \"123 Main St\",\n    \"country_id\": 59,\n    \"governorate_id\": 3,\n    \"region_id\": 2,\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\",\n    \"category_id\": 41,\n    \"region_ids\": [\n        2\n    ],\n    \"years_experience\": 5,\n    \"daily_order_capacity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/register",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"register"
											]
										},
										"description": "**Route:** `technician.auth.register`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `region_ids`\n- **Description:** Coverage Areas\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `region_ids.*`\n- **Description:** Region ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `personal_photo`\n- **Description:** Personal Photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National ID (Front)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National ID (Back)\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** CV/Resume\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `device_id`\n- **Description:** Device id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device token\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `fcm-token-here`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `ios`\n- **Validation rules:** `nullable|in:ios,android,web,huawei`\n- `nullable` — may be null.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This email address is already registered.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Account (OTP)",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"sara.tech@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/verify",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"verify"
									]
								},
								"description": "**Route:** `technician.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"sara.tech@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `technician.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Your account is pending activation. Please verify your account.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - code already used",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"sara.tech@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `technician.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Verification code has already been verified.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - wrong code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"sara.tech@example.com\",\n    \"code\": \"123456\",\n    \"token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/verify",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"verify"
											]
										},
										"description": "**Route:** `technician.auth.verify`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Resend Verification Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"verification_token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/resend-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"resend-code"
									]
								},
								"description": "**Route:** `technician.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - resend code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `technician.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid token",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"verification_token\": \"5e64afaf-b2e5-423b-9ef7-29935ec41187\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/resend-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"resend-code"
											]
										},
										"description": "**Route:** `technician.auth.resend`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `verification_token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid or expired verification token.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Login",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"technician_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/login",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"login"
									]
								},
								"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid credentials",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"You logged in successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"name\": \"Technician User\",\n        \"email\": \"technician@info.com\",\n        \"phone\": \"966500000005\",\n        \"user_type\": \"technician\",\n        \"user_type_label\": \"Technician\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"is_active\": true,\n        \"is_verified\": true,\n        \"is_banned\": false,\n        \"avatar\": null,\n        \"settings\": {\n            \"locale\": \"ar\",\n            \"allow_notifications\": true\n        },\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-22T19:08:30.000000Z\",\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgxMjMvYXBpL3YxL3RlY2huaWNpYW4vYXV0aC9sb2dpbiIsImlhdCI6MTc4NzQyODI2MSwiZXhwIjoxNzkyNjEyMjYxLCJuYmYiOjE3ODc0MjgyNjEsImp0aSI6IlVISHIzNFNSNUhkalRMd2wiLCJzdWIiOiI1IiwicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.odjRZ6Smmnoz7CM4xO32zhdIqjKvoOM4WJMJndJCxeA\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - wrong password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid email or password, please try again!\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 403 Forbidden: 403 Forbidden - non-technician account",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Access denied. Technician account required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - pending account",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `technician.auth.login`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Your account is pending activation. Please verify your account.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Request Password Reset",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"technician@info.com\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/forgot-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"forgot-password"
									]
								},
								"description": "**Route:** `technician.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - reset code sent",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `technician.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Verification code sent successfully\",\n    \"data\": {\n        \"verification_token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing login",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/forgot-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"forgot-password"
											]
										},
										"description": "**Route:** `technician.auth.forgot`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your email or phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Reset Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"technician@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/verify-reset-code",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"verify-reset-code"
									]
								},
								"description": "**Route:** `technician.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `technician.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Code verified. You can now set a new password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - wrong code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"code\": \"123456\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/verify-reset-code",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"verify-reset-code"
											]
										},
										"description": "**Route:** `technician.auth.verify-reset-code`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reset Password",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"technician@info.com\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/reset-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"reset-password"
									]
								},
								"description": "**Route:** `technician.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - password reset",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `technician.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password reset successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - token never verified",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"technician@info.com\",\n    \"token\": \"f76fb2ab-54d1-4c53-8498-8262ffd04532\",\n    \"password\": \"newpassword123\",\n    \"password_confirmation\": \"newpassword123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/reset-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"reset-password"
											]
										},
										"description": "**Route:** `technician.auth.reset`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email or Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `technician@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid or expired verification token.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Admin Login",
					"item": [
						{
							"name": "Login",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"admin_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/auth/login",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"auth",
										"login"
									]
								},
								"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** two overlapping throttle mechanisms exist on this endpoint — `AdminLoginThrottle` middleware (IP-based) runs first and wraps the whole route, so `AdminAuthService`'s own per-login-string `RateLimiter` check is effectively unreachable in the normal request flow. Not a functional bug (both ultimately block brute-forcing), just worth knowing which one actually fires."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid credentials",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Login successful.\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Super Admin\",\n        \"email\": \"admin@info.com\",\n        \"phone\": \"966500000001\",\n        \"user_type\": \"super_admin\",\n        \"user_type_label\": \"Super Admin\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"is_active\": true,\n        \"is_verified\": true,\n        \"is_banned\": false,\n        \"avatar\": null,\n        \"settings\": {\n            \"locale\": \"ar\",\n            \"allow_notifications\": true\n        },\n        \"last_login_at\": \"2026-08-22T20:02:56.000000Z\",\n        \"created_at\": \"2026-08-22T19:08:29.000000Z\",\n        \"roles\": [\n            {\n                \"id\": 1,\n                \"name\": \"Super Admin\"\n            }\n        ],\n        \"permissions\": [\n            \"operational-reports-view\"\n        ],\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vMTI3LjAuMC4xOjgxMjMvYXBpL3YxL2FkbWluL2F1dGgvbG9naW4iLCJpYXQiOjE3ODc0Mjg5NzYsImV4cCI6MTc5MjYxMjk3NiwibmJmIjoxNzg3NDI4OTc2LCJqdGkiOiJDMDQ1aUVmYTZ6R1FibjlUIiwic3ViIjoiMSIsInBydiI6IjIzYmQ1Yzg5NDlmNjAwYWRiMzllNzAxYzQwMDg3MmRiN2E1OTc2ZjcifQ.xCto4LrYd5dC2vQSkAuUrgvIUqaOzHiRPfOh4hWK7O4\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Unprocessable - wrong password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid credentials. Please check your email/phone and password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 403 Forbidden: 403 Forbidden - non-admin user type",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Access denied. Admin account required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 429 Too Many Requests: 429 Too Many Requests - IP throttle exceeded",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"login\": \"admin@info.com\",\n    \"password\": \"password\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/login",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"login"
											]
										},
										"description": "**Route:** `admin.auth.login`\n**Middleware:** `api, set_locale, cors, admin.login_throttle`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `login`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `admin@info.com`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `password`\n- **Validation rules:** `required|string|min:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:6` — must be at least 6.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Too Many Requests",
									"code": 429,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Too many login attempts from this IP. Please try again in 60 seconds.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "Client",
			"item": [
				{
					"name": "01. Authentication (Session)",
					"item": [
						{
							"name": "Refresh Access Token",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"var token = response.data ? (response.data.token || response.data.access_token) : (response.token || response.access_token);",
											"if (token) {",
											"    pm.collectionVariables.set(\"client_token\", token);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/refresh",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"refresh"
									]
								},
								"description": "**Route:** `client.auth.refresh`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/refresh",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"refresh"
											]
										},
										"description": "**Route:** `client.auth.refresh`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Token refreshed.\",\n    \"data\": {\n        \"token\": \"eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0L2FwaS92MS9jbGllbnQvYXV0aC9yZWZyZXNoIiwiaWF0IjoxNzg3MjIzMTE0LCJleHAiOjE3OTI0MDcxMTQsIm5iZiI6MTc4NzIyMzExNCwianRpIjoiYVZoN3BSMVkzVVNRdVlKTSIsInN1YiI6IjY1IiwicHJ2IjoiMjNiZDVjODk0OWY2MDBhZGIzOWU3MDFjNDAwODcyZGI3YTU5NzZmNyJ9.6f0W0toUzyKgHdCAGdCaAekEVYTZ8WrKcHUHe2LQI24\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/refresh",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"refresh"
											]
										},
										"description": "**Route:** `client.auth.refresh`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Logout",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"pm.collectionVariables.set(\"client_token\", \"\");"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/auth/logout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"auth",
										"logout"
									]
								},
								"description": "**Route:** `client.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `client.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Logged out successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `client.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "02. Profile & Settings",
					"item": [
						{
							"name": "Update Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Profile Updated\",\n    \"phone\": \"1044433399\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile"
									]
								},
								"description": "**Route:** `client.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,\"1\",id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|required_with:current_password|string|min:8|confirmed`\n- `sometimes` — validated only when the field is present.\n- `required_with:current_password` — required when current_password is present.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Profile Updated\",\n    \"phone\": \"1044433399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,\"1\",id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|required_with:current_password|string|min:8|confirmed`\n- `sometimes` — validated only when the field is present.\n- `required_with:current_password` — required when current_password is present.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile updated successfully\",\n    \"data\": {\n        \"id\": 67,\n        \"name\": \"Profile Updated\",\n        \"email\": \"profile.update@example.com\",\n        \"phone\": \"1044433399\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T10:51:55.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - phone already taken",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Profile Updated\",\n    \"phone\": \"1044433399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,\"1\",id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|required_with:current_password|string|min:8|confirmed`\n- `sometimes` — validated only when the field is present.\n- `required_with:current_password` — required when current_password is present.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This phone number is already registered.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - wrong current_password",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Profile Updated\",\n    \"phone\": \"1044433399\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,\"1\",id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|required_with:current_password|string|min:8|confirmed`\n- `sometimes` — validated only when the field is present.\n- `required_with:current_password` — required when current_password is present.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Password123!`\n- **Validation rules:** `required_with:password|string`\n- `required_with:password` — required when password is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The current password is incorrect.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Setting",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"locale\": \"ar\",\n    \"allow_notifications\": false\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"settings"
									]
								},
								"description": "**Route:** `client.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `locale`\n- **Description:** Language\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `en`\n- **Validation rules:** `sometimes|string|in:en,ar`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:en,ar` — must be one of: en, ar.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"locale\": \"ar\",\n    \"allow_notifications\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"settings"
											]
										},
										"description": "**Route:** `client.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `locale`\n- **Description:** Language\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `en`\n- **Validation rules:** `sometimes|string|in:en,ar`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:en,ar` — must be one of: en, ar.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile settings updated successfully\",\n    \"data\": {\n        \"id\": 79,\n        \"name\": \"Alphonso Rutherford\",\n        \"email\": \"settings.update@example.com\",\n        \"phone\": \"1022211101\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T10:52:01.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - unsupported locale",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"locale\": \"ar\",\n    \"allow_notifications\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"settings"
											]
										},
										"description": "**Route:** `client.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `locale`\n- **Description:** Language\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `en`\n- **Validation rules:** `sometimes|string|in:en,ar`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:en,ar` — must be one of: en, ar.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected language is not supported.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Email Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"new_email\": \"profile.new-email@example.com\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile/change-email",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile",
										"change-email"
									]
								},
								"description": "**Route:** `client.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - available new email",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_email\": \"profile.new-email@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/change-email",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"change-email"
											]
										},
										"description": "**Route:** `client.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification code has been sent to the new email.\",\n    \"data\": {\n        \"verification_token\": \"e56443d5-117c-4a4c-92da-a06e9dc88ece\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - email already taken",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_email\": \"profile.new-email@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/change-email",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"change-email"
											]
										},
										"description": "**Route:** `client.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The New Email has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Password Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile/change-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile",
										"change-password"
									]
								},
								"description": "**Route:** `client.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - correct current password",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `client.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password changed successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - wrong current password",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `client.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The current password is incorrect.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - password too short",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `client.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The password must be at least 8 characters.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile"
									]
								},
								"description": "**Route:** `client.profile.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Account deleted successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Email Change Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"token\": \"e56443d5-117c-4a4c-92da-a06e9dc88ece\",\n    \"code\": \"123456\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile/verify-email-change",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile",
										"verify-email-change"
									]
								},
								"description": "**Route:** `client.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"e56443d5-117c-4a4c-92da-a06e9dc88ece\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/verify-email-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"verify-email-change"
											]
										},
										"description": "**Route:** `client.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Email changed successfully.\",\n    \"data\": {\n        \"id\": 74,\n        \"name\": \"Concepcion Corwin\",\n        \"email\": \"profile.new-email@example.com\",\n        \"phone\": \"1044433329\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T10:51:58.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"e56443d5-117c-4a4c-92da-a06e9dc88ece\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile/verify-email-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile",
												"verify-email-change"
											]
										},
										"description": "**Route:** `client.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Expired or invalid verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Profile Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"profile"
									]
								},
								"description": "**Route:** `client.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile retrieved successfully\",\n    \"data\": {\n        \"id\": 66,\n        \"name\": \"Profile Original\",\n        \"email\": \"profile.user@example.com\",\n        \"phone\": \"1044433322\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T10:51:54.000000Z\",\n        \"completed_orders_total\": 0,\n        \"cancelled_orders_total\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"profile"
											]
										},
										"description": "**Route:** `client.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Setting Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"settings"
									]
								},
								"description": "**Route:** `client.settings.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"settings"
											]
										},
										"description": "**Route:** `client.settings.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved successfully\",\n    \"data\": {\n        \"locale\": \"en\",\n        \"allow_notifications\": true\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"settings"
											]
										},
										"description": "**Route:** `client.settings.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03. Addresses",
					"item": [
						{
							"name": "List All Addresses",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.addresses.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list addresses for authenticated user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.addresses.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Addresses retrieved\",\n    \"data\": [\n        {\n            \"id\": 15,\n            \"user_id\": 35,\n            \"title\": \"Home\",\n            \"address\": \"123 Faker Street, Riyadh\",\n            \"country_id\": 15,\n            \"governorate_id\": null,\n            \"region_id\": null,\n            \"lat\": 24.7136,\n            \"lng\": 46.6753,\n            \"phone\": \"500000001\",\n            \"phone_code\": \"966\",\n            \"notes\": \"Ring the bell twice\",\n            \"is_default\": true,\n            \"created_at\": \"2026-08-20T10:51:06.000000Z\",\n            \"updated_at\": \"2026-08-20T10:51:06.000000Z\",\n            \"country\": {\n                \"id\": 15,\n                \"phone_code\": null,\n                \"phone_starting_number\": null,\n                \"phone_length\": null,\n                \"short_name\": null,\n                \"continent\": \"asia\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20T10:51:06.000000Z\",\n                \"updated_at\": \"2026-08-20T10:51:06.000000Z\",\n                \"name\": null,\n                \"slug\": null,\n                \"currency\": null,\n                \"nationality\": null\n            },\n            \"governorate\": null,\n            \"region\": null\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.addresses.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Address Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `client.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - show own address",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "16",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Address retrieved\",\n    \"data\": {\n        \"id\": 16,\n        \"user_id\": 36,\n        \"title\": \"Home\",\n        \"address\": \"123 Faker Street, Riyadh\",\n        \"country_id\": 16,\n        \"governorate_id\": null,\n        \"region_id\": null,\n        \"lat\": 24.7136,\n        \"lng\": 46.6753,\n        \"phone\": \"500000001\",\n        \"phone_code\": \"966\",\n        \"notes\": \"Ring the bell twice\",\n        \"is_default\": true,\n        \"created_at\": \"2026-08-20T10:51:07.000000Z\",\n        \"updated_at\": \"2026-08-20T10:51:07.000000Z\",\n        \"country\": {\n            \"id\": 16,\n            \"phone_code\": null,\n            \"phone_starting_number\": null,\n            \"phone_length\": null,\n            \"short_name\": null,\n            \"continent\": \"asia\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:51:07.000000Z\",\n            \"updated_at\": \"2026-08-20T10:51:07.000000Z\",\n            \"name\": null,\n            \"slug\": null,\n            \"currency\": null,\n            \"nationality\": null\n        },\n        \"governorate\": null,\n        \"region\": null\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent address id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "16",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - address belongs to a different user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "16",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Address",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"address_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"title\": \"Home\",\n    \"address\": \"123 Faker Street, Riyadh\",\n    \"country_id\": 1,\n    \"lat\": 24.7136,\n    \"lng\": 46.6753,\n    \"phone_code\": \"966\",\n    \"phone\": \"500000001\",\n    \"notes\": \"Ring the bell twice\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses"
									]
								},
								"description": "**Route:** `client.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid address (first address auto-default)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Home\",\n    \"address\": \"123 Faker Street, Riyadh\",\n    \"country_id\": 14,\n    \"lat\": 24.7136,\n    \"lng\": 46.6753,\n    \"phone_code\": \"966\",\n    \"phone\": \"500000001\",\n    \"notes\": \"Ring the bell twice\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses"
											]
										},
										"description": "**Route:** `client.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Address created\",\n    \"data\": {\n        \"title\": \"Home\",\n        \"address\": \"123 Faker Street, Riyadh\",\n        \"country_id\": 14,\n        \"lat\": 24.7136,\n        \"lng\": 46.6753,\n        \"phone\": \"500000001\",\n        \"phone_code\": \"966\",\n        \"notes\": \"Ring the bell twice\",\n        \"user_id\": 33,\n        \"is_default\": true,\n        \"updated_at\": \"2026-08-20T10:51:05.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:05.000000Z\",\n        \"id\": 14,\n        \"country\": {\n            \"id\": 14,\n            \"phone_code\": null,\n            \"phone_starting_number\": null,\n            \"phone_length\": null,\n            \"short_name\": null,\n            \"continent\": \"asia\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:51:04.000000Z\",\n            \"updated_at\": \"2026-08-20T10:51:04.000000Z\",\n            \"name\": null,\n            \"slug\": null,\n            \"currency\": null,\n            \"nationality\": null\n        },\n        \"governorate\": null,\n        \"region\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing required fields",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Home\",\n    \"address\": \"123 Faker Street, Riyadh\",\n    \"country_id\": 14,\n    \"lat\": 24.7136,\n    \"lng\": 46.6753,\n    \"phone_code\": \"966\",\n    \"phone\": \"500000001\",\n    \"notes\": \"Ring the bell twice\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses"
											]
										},
										"description": "**Route:** `client.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter an address.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Address",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"456 Updated Ave\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `client.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - partial update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"456 Updated Ave\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "18",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Address updated\",\n    \"data\": {\n        \"id\": 18,\n        \"user_id\": 40,\n        \"title\": \"Office\",\n        \"address\": \"456 Updated Ave\",\n        \"country_id\": 18,\n        \"governorate_id\": null,\n        \"region_id\": null,\n        \"lat\": 24.7136,\n        \"lng\": 46.6753,\n        \"phone\": \"500000001\",\n        \"phone_code\": \"966\",\n        \"notes\": \"Ring the bell twice\",\n        \"is_default\": true,\n        \"created_at\": \"2026-08-20T10:51:09.000000Z\",\n        \"updated_at\": \"2026-08-20T10:51:09.000000Z\",\n        \"country\": {\n            \"id\": 18,\n            \"phone_code\": null,\n            \"phone_starting_number\": null,\n            \"phone_length\": null,\n            \"short_name\": null,\n            \"continent\": \"asia\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:51:09.000000Z\",\n            \"updated_at\": \"2026-08-20T10:51:09.000000Z\",\n            \"name\": null,\n            \"slug\": null,\n            \"currency\": null,\n            \"nationality\": null\n        },\n        \"governorate\": null,\n        \"region\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - lat out of range",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"456 Updated Ave\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "18",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Latitude must be between -90 and 90.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Default Address",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses/:address/default",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses",
										":address",
										"default"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `client.addresses.default`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - set a non-default address as default",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address/default",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address",
												"default"
											],
											"variable": [
												{
													"key": "address",
													"value": "22",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.default`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Default address updated\",\n    \"data\": {\n        \"id\": 22,\n        \"user_id\": 44,\n        \"title\": \"Office\",\n        \"address\": \"123 Faker Street, Riyadh\",\n        \"country_id\": 21,\n        \"governorate_id\": null,\n        \"region_id\": null,\n        \"lat\": 24.7136,\n        \"lng\": 46.6753,\n        \"phone\": \"500000001\",\n        \"phone_code\": \"966\",\n        \"notes\": \"Ring the bell twice\",\n        \"is_default\": true,\n        \"created_at\": \"2026-08-20T10:51:11.000000Z\",\n        \"updated_at\": \"2026-08-20T10:51:15.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent address id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address/default",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address",
												"default"
											],
											"variable": [
												{
													"key": "address",
													"value": "22",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.default`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Address",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `client.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - delete own address",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Address deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent address id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `client.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03b. Categories & Services",
					"item": [
						{
							"name": "List Service Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories"
									]
								},
								"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories"
											]
										},
										"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"\\u0627\\u0644\\u0633\\u0628\\u0627\\u0643\\u0629\",\n            \"description\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0645\\u0648\\u0627\\u0633\\u064a\\u0631 \\u0648\\u0627\\u0644\\u0635\\u0631\\u0641 \\u0648\\u062a\\u0631\\u0643\\u064a\\u0628\\u0627\\u062a \\u0627\\u0644\\u0645\\u064a\\u0627\\u0647\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 6,\n            \"name\": \"\\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0621\",\n            \"description\": \"\\u0627\\u0644\\u0623\\u0633\\u0644\\u0627\\u0643 \\u0648\\u0627\\u0644\\u0645\\u0642\\u0627\\u0628\\u0633 \\u0648\\u0627\\u0644\\u0625\\u0635\\u0644\\u0627\\u062d\\u0627\\u062a \\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0626\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 11,\n            \"name\": \"\\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641 \\u0648\\u0627\\u0644\\u062a\\u0628\\u0631\\u064a\\u062f\",\n            \"description\": \"\\u062a\\u0631\\u0643\\u064a\\u0628 \\u0648\\u0635\\u064a\\u0627\\u0646\\u0629 \\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 3,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 16,\n            \"name\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 4,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 20,\n            \"name\": \"\\u0627\\u0644\\u062f\\u0647\\u0627\\u0646\\u0627\\u062a \\u0648\\u0627\\u0644\\u0646\\u062c\\u0627\\u0631\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0627\\u0644\\u062f\\u0647\\u0627\\u0646 \\u0648\\u0627\\u0644\\u0623\\u0639\\u0645\\u0627\\u0644 \\u0627\\u0644\\u062e\\u0634\\u0628\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 5,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        }\n    ]\n}\n"
								}
							]
						},
						{
							"name": "List Category Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list active services under a category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 27,\n            \"parent_id\": 26,\n            \"name\": \"Wiring Repair\",\n            \"description\": \"Fix wiring\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        },\n        {\n            \"id\": 28,\n            \"parent_id\": 26,\n            \"name\": \"Socket Installation\",\n            \"description\": \"Install sockets\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Requests & Orders — Creating",
					"item": [
						{
							"name": "Show Cart Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart"
									]
								},
								"description": "**Route:** `client.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - empty cart (never persisted)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart"
											]
										},
										"description": "**Route:** `client.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart retrieved\",\n    \"data\": {\n        \"id\": null,\n        \"items_count\": 0,\n        \"subtotal\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart"
											]
										},
										"description": "**Route:** `client.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Item",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "PATCH",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"quantity\": 5\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart",
										"items",
										":itemId"
									],
									"variable": [
										{
											"key": "itemId",
											"value": "{{cart_item_id}}",
											"description": "ItemId ID"
										}
									]
								},
								"description": "**Route:** `client.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - quantity updated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PATCH",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"quantity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "5",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `client.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart updated\",\n    \"data\": {\n        \"id\": 5,\n        \"items_count\": 5,\n        \"subtotal\": 500,\n        \"items\": [\n            {\n                \"id\": 5,\n                \"quantity\": 5,\n                \"unit_price\": \"100.00\",\n                \"line_total\": 500,\n                \"service\": {\n                    \"id\": 11,\n                    \"name\": \"إصلاح مكيف\",\n                    \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\"\n                },\n                \"created_at\": \"2026-08-20T10:50:39.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - item does not exist",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PATCH",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"quantity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "5",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `client.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - item belongs to another user's cart (scoped via cart->items()->findOrFail, not visible cross-user)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PATCH",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"quantity\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "5",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `client.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Checkout Cart",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.uuid !== undefined && response.data.uuid !== null) {",
											"    pm.collectionVariables.set(\"order_id\", response.data.uuid);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Idempotency-Key",
										"value": "wallet-checkout-19"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 1\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart/checkout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart",
										"checkout"
									]
								},
								"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (money math):** `CheckoutRequest`'s `WalletCoversCartRule` validates the wallet balance against the cart's **subtotal only** (no VAT), while `CheckoutCommandService::checkoutWithWallet()` re-validates — correctly — against the VAT-inclusive `total_amount` one layer deeper. A wallet that covers the subtotal but not subtotal+VAT currently passes this endpoint's own request validation and only fails inside the service, which is misleading for a client following the documented validation rules. See the dedicated VAT-mismatch example below."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - wallet payment (Idempotency-Key header sent)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order placed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-KMPW\",\n        \"customer_id\": 19,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": null,\n        \"address_id\": 2,\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"200.00\",\n        \"vat_amount\": \"30.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"230.00\",\n        \"paid_amount\": \"230.00\",\n        \"uuid\": \"c7e219d7-8c70-4c6e-8735-cd7b3df45678\",\n        \"updated_at\": \"2026-08-20T10:50:54.000000Z\",\n        \"created_at\": \"2026-08-20T10:50:54.000000Z\",\n        \"id\": 6,\n        \"items\": [\n            {\n                \"id\": 3,\n                \"order_id\": \"c7e219d7-8c70-4c6e-8735-cd7b3df45678\",\n                \"category_id\": 16,\n                \"service_name\": \"إصلاح مكيف\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"100.00\",\n                \"quantity\": 2,\n                \"line_total\": \"200.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": null,\n                \"created_at\": \"2026-08-20T10:50:54.000000Z\",\n                \"updated_at\": \"2026-08-20T10:50:54.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 - gateway payment (dummy gateway confirms), scheduled booking",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order placed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-NDLY\",\n        \"customer_id\": 20,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"scheduled\",\n        \"scheduled_date\": \"2026-08-21T00:00:00.000000Z\",\n        \"address_id\": 3,\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"150.00\",\n        \"vat_amount\": \"22.50\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"172.50\",\n        \"paid_amount\": \"172.50\",\n        \"uuid\": \"3cabd499-6b25-4f27-902a-dfc510eb6499\",\n        \"updated_at\": \"2026-08-20T10:50:54.000000Z\",\n        \"created_at\": \"2026-08-20T10:50:54.000000Z\",\n        \"id\": 7,\n        \"items\": [\n            {\n                \"id\": 4,\n                \"order_id\": \"3cabd499-6b25-4f27-902a-dfc510eb6499\",\n                \"category_id\": 17,\n                \"service_name\": \"إصلاح مكيف\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"50.00\",\n                \"quantity\": 3,\n                \"line_total\": \"150.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": null,\n                \"created_at\": \"2026-08-20T10:50:54.000000Z\",\n                \"updated_at\": \"2026-08-20T10:50:54.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - gateway declines the charge (payments.dummy_gateway_should_fail=true), no order created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Payment could not be completed\",\n    \"data\": {\n        \"payment_id\": 3\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - empty cart (no cart row at all)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"Your cart is empty\",\n    \"data\": {\n        \"error_code\": \"BUSINESS_RULE_VIOLATED\",\n        \"correlation_id\": \"c0b2afe8-c192-4d05-90d1-37dcca7f29dd\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - wallet balance (10.00) does not cover cart total (575.00), rejected by WalletCoversCartRule at the FormRequest layer before the service runs",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance (10.00 SAR) is less than the order total (500.00 SAR). The wallet cannot be used for partial payment.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - BUG: wallet (105.00) covers cart subtotal (100.00) but not the VAT-inclusive total (115.00); CheckoutRequest's WalletCoversCartRule validates against subtotal only and lets this through, then CheckoutComm",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance (105.00 SAR) is less than the order total (115.00 SAR). The wallet cannot be used for partial payment.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - address_id missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select an address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 - idempotent replay: same Idempotency-Key returns cached first response, no duplicate order (X-Idempotent-Replay: true)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `client.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order placed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-7YMK\",\n        \"customer_id\": 26,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": null,\n        \"address_id\": 8,\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"40.00\",\n        \"vat_amount\": \"6.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"46.00\",\n        \"paid_amount\": \"46.00\",\n        \"uuid\": \"644b2de9-a3ee-42d6-8b80-55446defef66\",\n        \"updated_at\": \"2026-08-20T10:50:59.000000Z\",\n        \"created_at\": \"2026-08-20T10:50:59.000000Z\",\n        \"id\": 8,\n        \"items\": [\n            {\n                \"id\": 5,\n                \"order_id\": \"644b2de9-a3ee-42d6-8b80-55446defef66\",\n                \"category_id\": 22,\n                \"service_name\": \"إصلاح مكيف\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"40.00\",\n                \"quantity\": 1,\n                \"line_total\": \"40.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": null,\n                \"created_at\": \"2026-08-20T10:51:00.000000Z\",\n                \"updated_at\": \"2026-08-20T10:51:00.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Clear Cart",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart"
									]
								},
								"description": "**Route:** `client.cart.clear`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - cart cleared",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart"
											]
										},
										"description": "**Route:** `client.cart.clear`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart cleared\",\n    \"data\": {\n        \"id\": 11,\n        \"items_count\": 0,\n        \"subtotal\": 0,\n        \"items\": []\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - clear with no pre-existing cart (lazily created then cleared)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart"
											]
										},
										"description": "**Route:** `client.cart.clear`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart cleared\",\n    \"data\": {\n        \"id\": 12,\n        \"items_count\": 0,\n        \"subtotal\": 0,\n        \"items\": []\n    }\n}"
								}
							]
						},
						{
							"name": "Custom Request Cart",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.uuid !== undefined && response.data.uuid !== null) {",
											"    pm.collectionVariables.set(\"order_id\", response.data.uuid);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 1\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart/custom-request",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart",
										"custom-request"
									]
								},
								"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - custom request with a previously uploaded media hash",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Custom request submitted\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-QZJN\",\n        \"customer_id\": 27,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"instant\",\n        \"address_id\": 9,\n        \"status\": \"waiting_price\",\n        \"subtotal_amount\": \"0.00\",\n        \"vat_amount\": \"0.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"0.00\",\n        \"paid_amount\": \"0.00\",\n        \"uuid\": \"878d4cf3-06b3-4c05-b9dd-efe339ad0a5c\",\n        \"updated_at\": \"2026-08-20T10:51:00.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:00.000000Z\",\n        \"id\": 9,\n        \"items\": [\n            {\n                \"id\": 6,\n                \"order_id\": \"878d4cf3-06b3-4c05-b9dd-efe339ad0a5c\",\n                \"category_id\": null,\n                \"service_name\": \"Custom request\",\n                \"pricing_type\": \"quote\",\n                \"unit_price\": \"0.00\",\n                \"quantity\": 1,\n                \"line_total\": \"0.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": \"Water leak under the kitchen sink\",\n                \"created_at\": \"2026-08-20T10:51:00.000000Z\",\n                \"updated_at\": \"2026-08-20T10:51:00.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 - custom request with no media and no category (generic label)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Custom request submitted\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-L6HL\",\n        \"customer_id\": 28,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"instant\",\n        \"address_id\": 10,\n        \"status\": \"waiting_price\",\n        \"subtotal_amount\": \"0.00\",\n        \"vat_amount\": \"0.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"0.00\",\n        \"paid_amount\": \"0.00\",\n        \"uuid\": \"d3cfe905-0eb4-4d80-a915-be7c84589794\",\n        \"updated_at\": \"2026-08-20T10:51:01.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:01.000000Z\",\n        \"id\": 10,\n        \"items\": [\n            {\n                \"id\": 7,\n                \"order_id\": \"d3cfe905-0eb4-4d80-a915-be7c84589794\",\n                \"category_id\": null,\n                \"service_name\": \"Custom request\",\n                \"pricing_type\": \"quote\",\n                \"unit_price\": \"0.00\",\n                \"quantity\": 1,\n                \"line_total\": \"0.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": \"Need a quote for full house painting\",\n                \"created_at\": \"2026-08-20T10:51:01.000000Z\",\n                \"updated_at\": \"2026-08-20T10:51:01.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 - custom request scoped to a category (service_name snapshotted from category)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Custom request submitted\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-HJ47\",\n        \"customer_id\": 29,\n        \"order_source\": \"individual\",\n        \"branch_id\": null,\n        \"booking_type\": \"instant\",\n        \"address_id\": 11,\n        \"status\": \"waiting_price\",\n        \"subtotal_amount\": \"0.00\",\n        \"vat_amount\": \"0.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"0.00\",\n        \"paid_amount\": \"0.00\",\n        \"uuid\": \"52e578b2-39b1-4489-995f-9f3e74d34937\",\n        \"updated_at\": \"2026-08-20T10:51:01.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:01.000000Z\",\n        \"id\": 11,\n        \"items\": [\n            {\n                \"id\": 8,\n                \"order_id\": \"52e578b2-39b1-4489-995f-9f3e74d34937\",\n                \"category_id\": 23,\n                \"service_name\": \"إصلاح مكيف\",\n                \"pricing_type\": \"quote\",\n                \"unit_price\": \"0.00\",\n                \"quantity\": 1,\n                \"line_total\": \"0.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": \"Rewiring the living room, need custom quote\",\n                \"created_at\": \"2026-08-20T10:51:01.000000Z\",\n                \"updated_at\": \"2026-08-20T10:51:01.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - description is required",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a description.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - request_media hash not found (MediaExists rule)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The media file was not found.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - address does not exist",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected address does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Water leak under the kitchen sink\",\n    \"request_media\": \"2295ffcd31dbf66c64ca94f2add8268b\",\n    \"address_id\": 9\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/custom-request",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"custom-request"
											]
										},
										"description": "**Route:** `client.cart.custom-request`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Add Item",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"cart_item_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"category_id\": 2,\n    \"quantity\": 2\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart/items",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart",
										"items"
									]
								},
								"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - item added to empty cart",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item added to cart\",\n    \"data\": {\n        \"id\": 1,\n        \"items_count\": 2,\n        \"subtotal\": 200,\n        \"items\": [\n            {\n                \"id\": 1,\n                \"quantity\": 2,\n                \"unit_price\": \"100.00\",\n                \"line_total\": 200,\n                \"service\": {\n                    \"id\": 1,\n                    \"name\": \"إصلاح مكيف\",\n                    \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\"\n                },\n                \"created_at\": \"2026-08-20T10:50:36.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 - merges quantity into existing line (1 + 3 = 4)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item added to cart\",\n    \"data\": {\n        \"id\": 2,\n        \"items_count\": 4,\n        \"subtotal\": 400,\n        \"items\": [\n            {\n                \"id\": 2,\n                \"quantity\": 4,\n                \"unit_price\": \"100.00\",\n                \"line_total\": 400,\n                \"service\": {\n                    \"id\": 2,\n                    \"name\": \"إصلاح مكيف\",\n                    \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\"\n                },\n                \"created_at\": \"2026-08-20T10:50:37.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - category does not exist",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected category does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - category is inactive (excluded by Rule::exists where is_active=true)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected category does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - visit service cannot join a cart that already has items",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item_cant_be_added_because_visit_service_must_be_single_service_in_order\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - different parent category than existing cart line",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 1,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `client.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item_cant_be_added_because_its_another_category_please_empty_cart_first\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Remove Item",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"cart",
										"items",
										":itemId"
									],
									"variable": [
										{
											"key": "itemId",
											"value": "{{cart_item_id}}",
											"description": "ItemId ID"
										}
									]
								},
								"description": "**Route:** `client.cart.items.remove`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - item removed",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "9",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `client.cart.items.remove`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item removed from cart\",\n    \"data\": {\n        \"id\": 9,\n        \"items_count\": 0,\n        \"subtotal\": 0,\n        \"items\": []\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - item does not exist",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "9",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `client.cart.items.remove`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Requests & Orders — Lifecycle",
					"item": [
						{
							"name": "List All Orders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Orders retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 12,\n                \"uuid\": \"57ccff44-7848-4427-acfd-8b34ccb35ad8\",\n                \"order_number\": \"ORD-260820-EJIN\",\n                \"status\": \"pending\",\n                \"scheduled_date\": \"2026-09-02\",\n                \"total_amount\": \"436.57\",\n                \"items\": [\n                    {\n                        \"id\": 9,\n                        \"service_name\": \"error expedita voluptatem\",\n                        \"pricing_type\": \"fixed\",\n                        \"unit_price\": \"248.91\",\n                        \"quantity\": 3,\n                        \"line_total\": \"746.73\",\n                        \"is_quoted\": false,\n                        \"request_description\": null,\n                        \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20T10:52:19+00:00\"\n            },\n            {\n                \"id\": 13,\n                \"uuid\": \"cd381198-01c3-4fee-b2d7-fc598466594a\",\n                \"order_number\": \"ORD-260820-FKLW\",\n                \"status\": \"confirmed\",\n                \"scheduled_date\": null,\n                \"total_amount\": \"149.41\",\n                \"items\": [\n                    {\n                        \"id\": 10,\n                        \"service_name\": \"est maiores deserunt\",\n                        \"pricing_type\": \"fixed\",\n                        \"unit_price\": \"172.68\",\n                        \"quantity\": 3,\n                        \"line_total\": \"518.04\",\n                        \"is_quoted\": false,\n                        \"request_description\": null,\n                        \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20T10:52:19+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/client/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/orders\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Order Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders/:order",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders",
										":order"
									],
									"variable": [
										{
											"key": "order",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `client.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "e3302b99-57fe-45e5-ab4c-4e6f7fc0bab9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order retrieved successfully.\",\n    \"data\": {\n        \"id\": 14,\n        \"uuid\": \"e3302b99-57fe-45e5-ab4c-4e6f7fc0bab9\",\n        \"order_number\": \"ORD-260820-PRTK\",\n        \"status\": \"pending\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"135.88\",\n        \"vat_amount\": \"20.38\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"156.26\",\n        \"paid_amount\": \"156.26\",\n        \"address\": {\n            \"id\": 24,\n            \"title\": \"Home\"\n        },\n        \"technician\": null,\n        \"items\": [\n            {\n                \"id\": 11,\n                \"service_name\": \"molestias ut iure\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"186.78\",\n                \"quantity\": 1,\n                \"line_total\": \"186.78\",\n                \"is_quoted\": false,\n                \"request_description\": null,\n                \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T10:52:23+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:23+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "e3302b99-57fe-45e5-ab4c-4e6f7fc0bab9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Customer's Order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "e3302b99-57fe-45e5-ab4c-4e6f7fc0bab9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Accept Price Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"payment_method\": \"wallet\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders",
										":id",
										"accept-price"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `AcceptPriceRequest::rules()`'s `WalletCoversCartRule` compares the wallet balance against `Order::where('id', $this->route('id'))->value('total_amount')` — but the route segment is the order's `uuid`, not its integer `id`, so this lookup always misses and the comparison silently runs against 0. Every `payment_method=wallet` request currently passes this request-level check regardless of actual balance; an insufficient balance is only caught later, one layer deeper, inside `OrderCommandService::payWithWallet()`, and surfaces as a generic validation exception rather than a clean 422 from this endpoint's own rules. See the '422 Insufficient Wallet Balance' example below — note it's still a 422, just not from this form request as the field docs imply."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - wallet",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Price accepted, your order is now being processed.\",\n    \"data\": {\n        \"id\": 16,\n        \"uuid\": \"0f2d3ba1-dff2-4b96-af78-0e694d14f390\",\n        \"order_number\": \"ORD-260820-EECE\",\n        \"status\": \"pending\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"650.39\",\n        \"vat_amount\": \"97.56\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"100.00\",\n        \"paid_amount\": \"100.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:27+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Wrong Status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order has no pending price to accept or reject.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Payment Method field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Insufficient Wallet Balance - caught downstream in OrderCommandService, NOT by AcceptPriceRequest (see bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance (5.00 SAR) is less than the order total (1,000.00 SAR). The wallet cannot be used for partial payment.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - gateway",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Price accepted, your order is now being processed.\",\n    \"data\": {\n        \"id\": 20,\n        \"uuid\": \"6be2d81c-4c3c-4843-aefe-f12dd60d9502\",\n        \"order_number\": \"ORD-260820-BMXR\",\n        \"status\": \"pending\",\n        \"scheduled_date\": \"2026-08-24\",\n        \"subtotal_amount\": \"365.91\",\n        \"vat_amount\": \"54.89\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"200.00\",\n        \"paid_amount\": \"200.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:35+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Gateway Payment Failed",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "0f2d3ba1-dff2-4b96-af78-0e694d14f390",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Payment could not be completed\",\n    \"data\": {\n        \"payment_id\": 7\n    }\n}"
								}
							]
						},
						{
							"name": "Cancel Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders",
										":id",
										"cancel"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order cancelled successfully.\",\n    \"data\": {\n        \"id\": 28,\n        \"uuid\": \"58b5c4e0-7419-4ad6-a466-f3699a1e22b8\",\n        \"order_number\": \"ORD-260820-QDQW\",\n        \"status\": \"cancelled\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"370.60\",\n        \"vat_amount\": \"55.59\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"426.19\",\n        \"paid_amount\": \"0.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:46+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - with refund to wallet",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order cancelled successfully.\",\n    \"data\": {\n        \"id\": 29,\n        \"uuid\": \"4946c762-5927-4aa0-b018-9fffbdeb2668\",\n        \"order_number\": \"ORD-260820-ZWYI\",\n        \"status\": \"cancelled\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"167.74\",\n        \"vat_amount\": \"25.16\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"120.00\",\n        \"paid_amount\": \"120.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:49+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Wrong Status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order can no longer be cancelled.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Cancellation Reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Changed my mind about the service.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "58b5c4e0-7419-4ad6-a466-f3699a1e22b8",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Confirm Completion Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders",
										":id",
										"confirm-completion"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** when `stars` is provided, `OrderCommandService::confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` points at `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion currently throws a database integrity-constraint error, returned as a generic 500. Until fixed, omit `stars` to avoid it — see the '500 Server Error' example below, which reproduces it verbatim."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - no rating",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "3a6b0b05-03b4-4804-83e8-277674ba761e",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Thanks for confirming — your order is complete.\",\n    \"data\": {\n        \"id\": 25,\n        \"uuid\": \"3a6b0b05-03b4-4804-83e8-277674ba761e\",\n        \"order_number\": \"ORD-260820-ZMUW\",\n        \"status\": \"confirmed\",\n        \"scheduled_date\": \"2026-08-24\",\n        \"subtotal_amount\": \"722.29\",\n        \"vat_amount\": \"108.34\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"830.63\",\n        \"paid_amount\": \"830.63\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:46+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Wrong Status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "3a6b0b05-03b4-4804-83e8-277674ba761e",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order is not awaiting a completion confirmation.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "3a6b0b05-03b4-4804-83e8-277674ba761e",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Rating must not be greater than 5.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "3a6b0b05-03b4-4804-83e8-277674ba761e",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "3a6b0b05-03b4-4804-83e8-277674ba761e",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject Price Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/orders/:id/reject-price",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"orders",
										":id",
										"reject-price"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `client.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "17c26507-0a3b-480a-9f57-56342dd14e59",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Price rejected, your order has been cancelled.\",\n    \"data\": {\n        \"id\": 22,\n        \"uuid\": \"17c26507-0a3b-480a-9f57-56342dd14e59\",\n        \"order_number\": \"ORD-260820-YNQG\",\n        \"status\": \"cancelled\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"639.15\",\n        \"vat_amount\": \"95.87\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"80.00\",\n        \"paid_amount\": \"735.02\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:52:39+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Wrong Status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "17c26507-0a3b-480a-9f57-56342dd14e59",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order has no pending price to accept or reject.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "17c26507-0a3b-480a-9f57-56342dd14e59",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "17c26507-0a3b-480a-9f57-56342dd14e59",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `client.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "05. Wallet",
					"item": [
						{
							"name": "Balance Wallet",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/wallet",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"wallet"
									]
								},
								"description": "**Route:** `client.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - individual wallet balance",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet"
											]
										},
										"description": "**Route:** `client.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Balance retrieved successfully\",\n    \"data\": {\n        \"balance\": 150.5,\n        \"currency\": \"SAR\",\n        \"is_locked\": false,\n        \"can_withdraw\": false\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no wallet row yet (defaults returned)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet"
											]
										},
										"description": "**Route:** `client.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Balance retrieved successfully\",\n    \"data\": {\n        \"balance\": 0,\n        \"currency\": \"SAR\",\n        \"is_locked\": false\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet"
											]
										},
										"description": "**Route:** `client.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Transactions Wallet",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/wallet/transactions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"wallet",
										"transactions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "type",
											"value": "credit",
											"description": "Filter by type: credit, debit",
											"disabled": true
										},
										{
											"key": "from",
											"value": "2024-01-01",
											"description": "Filter from date",
											"disabled": true
										},
										{
											"key": "to",
											"value": "2024-12-31",
											"description": "Filter to date",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `type` — Filter by type: credit, debit (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - paginated transaction history",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/transactions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"transactions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "type",
													"value": "credit",
													"description": "Filter by type: credit, debit",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `type` — Filter by type: credit, debit (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 2,\n                \"type\": \"refund_credit\",\n                \"type_label\": \"Refund from cancelled order\",\n                \"amount\": \"100.00\",\n                \"balance_after\": \"100.00\",\n                \"status\": \"completed\",\n                \"notes\": null,\n                \"related_order\": null,\n                \"created_at\": \"2026-08-20T10:51:25+00:00\"\n            },\n            {\n                \"id\": 3,\n                \"type\": \"refund_credit\",\n                \"type_label\": \"Refund from cancelled order\",\n                \"amount\": \"100.00\",\n                \"balance_after\": \"200.00\",\n                \"status\": \"completed\",\n                \"notes\": null,\n                \"related_order\": null,\n                \"created_at\": \"2026-08-20T10:51:25+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/wallet/transactions?page=1\",\n            \"last\": \"http://localhost/api/v1/client/wallet/transactions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/wallet/transactions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/wallet/transactions\",\n            \"per_page\": 20,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no wallet row (empty list)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/transactions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"transactions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "type",
													"value": "credit",
													"description": "Filter by type: credit, debit",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `type` — Filter by type: credit, debit (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Withdraw Wallet",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"withdraw_request_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/wallet/withdraw",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"wallet",
										"withdraw"
									]
								},
								"description": "**Route:** `client.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - freelance technician withdraws successfully",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `client.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Withdrawal request submitted successfully\",\n    \"data\": {\n        \"user_id\": 50,\n        \"amount\": 200,\n        \"bank_name\": \"Al Rajhi Bank\",\n        \"account_number\": \"1234567890\",\n        \"iban\": \"SA0380000000608010167519\",\n        \"updated_at\": \"2026-08-20T10:51:35.000000Z\",\n        \"created_at\": \"2026-08-20T10:51:35.000000Z\",\n        \"id\": 1\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - individual accounts cannot withdraw (refund-only)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `client.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Withdrawal is not available for individual accounts. Wallet is refund-only.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - insufficient wallet balance",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `client.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Insufficient wallet balance\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing bank details",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `client.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter the bank name.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "06. Notifications (Client-Specific)",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated with notifications",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": \"a1a58d57-1743-468f-b399-7525426cf6ce\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 81,\n                \"type\": \"App\\\\Notifications\\\\OrderStatusChanged\",\n                \"data\": \"{\\\"title\\\":\\\"Order Update\\\",\\\"body\\\":\\\"Your order status changed.\\\"}\",\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T10:52:02.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:02.000000Z\"\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/client/notifications?page=1\",\n        \"from\": 1,\n        \"last_page\": 1,\n        \"last_page_url\": \"http://localhost/api/v1/client/notifications?page=1\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/client/notifications?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": null,\n        \"path\": \"http://localhost/api/v1/client/notifications\",\n        \"per_page\": 20,\n        \"prev_page_url\": null,\n        \"to\": 1,\n        \"total\": 1\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Device Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"device_id\": \"device-abc-123\",\n    \"device_token\": \"fcm-token-xyz\",\n    \"device_type\": \"android\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/notifications/device",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"notifications",
										"device"
									]
								},
								"description": "**Route:** `client.notifications.device`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `device-uuid-123`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `fcm-token-here`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `ios`\n- **Validation rules:** `required|in:ios,android,web,huawei`\n- `required` — must be provided.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid device registration",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-abc-123\",\n    \"device_token\": \"fcm-token-xyz\",\n    \"device_type\": \"android\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/device",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"device"
											]
										},
										"description": "**Route:** `client.notifications.device`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `device-uuid-123`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `fcm-token-here`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `ios`\n- **Validation rules:** `required|in:ios,android,web,huawei`\n- `required` — must be provided.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Device registered\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid device_type",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-abc-123\",\n    \"device_token\": \"fcm-token-xyz\",\n    \"device_type\": \"android\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/device",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"device"
											]
										},
										"description": "**Route:** `client.notifications.device`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `device-uuid-123`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `device_token`\n- **Description:** Device Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `fcm-token-here`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `device_type`\n- **Description:** Device Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `ios`\n- **Validation rules:** `required|in:ios,android,web,huawei`\n- `required` — must be provided.\n- `in:ios,android,web,huawei` — must be one of: ios, android, web, huawei.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid device type. Accepted values: ios, android, web.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Preferences Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"allow_notifications\": false\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/notifications/preferences",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"notifications",
										"preferences"
									]
								},
								"description": "**Route:** `client.notifications.preferences`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** required\n- **Example:** `true`\n- **Validation rules:** `required|boolean`\n- `required` — must be provided.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid preference",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"allow_notifications\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/preferences",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"preferences"
											]
										},
										"description": "**Route:** `client.notifications.preferences`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** required\n- **Example:** `true`\n- **Validation rules:** `required|boolean`\n- `required` — must be provided.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Preferences updated\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing allow_notifications",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"allow_notifications\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/preferences",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"preferences"
											]
										},
										"description": "**Route:** `client.notifications.preferences`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `allow_notifications`\n- **Description:** Allow Notifications\n- **Type:** `boolean`\n- **Required:** required\n- **Example:** `true`\n- **Validation rules:** `required|boolean`\n- `required` — must be provided.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please specify your notification preference.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Read Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"ids\": [\n        \"8b5066e9-46c6-4672-8b58-34605c5df413\"\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/notifications/read",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"notifications",
										"read"
									]
								},
								"description": "**Route:** `client.notifications.read`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `ids`\n- **Description:** Ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"00000000-0000-0000-0000-000000000000\"]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `ids.*`\n- **Description:** Ids item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `00000000-0000-0000-0000-000000000000`\n- **Validation rules:** `uuid`\n- `uuid` — custom validation rule.\n### `all`\n- **Description:** All\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - mark specific ids read",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"ids\": [\n        \"8b5066e9-46c6-4672-8b58-34605c5df413\"\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/read",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"read"
											]
										},
										"description": "**Route:** `client.notifications.read`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `ids`\n- **Description:** Ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"00000000-0000-0000-0000-000000000000\"]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `ids.*`\n- **Description:** Ids item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `00000000-0000-0000-0000-000000000000`\n- **Validation rules:** `uuid`\n- `uuid` — custom validation rule.\n### `all`\n- **Description:** All\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications marked as read\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - mark all read",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"ids\": [\n        \"8b5066e9-46c6-4672-8b58-34605c5df413\"\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/read",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"read"
											]
										},
										"description": "**Route:** `client.notifications.read`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `ids`\n- **Description:** Ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"00000000-0000-0000-0000-000000000000\"]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `ids.*`\n- **Description:** Ids item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `00000000-0000-0000-0000-000000000000`\n- **Validation rules:** `uuid`\n- `uuid` — custom validation rule.\n### `all`\n- **Description:** All\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications marked as read\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - ids.* must be uuid",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"ids\": [\n        \"8b5066e9-46c6-4672-8b58-34605c5df413\"\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/notifications/read",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"notifications",
												"read"
											]
										},
										"description": "**Route:** `client.notifications.read`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `ids`\n- **Description:** Ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"00000000-0000-0000-0000-000000000000\"]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `ids.*`\n- **Description:** Ids item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `00000000-0000-0000-0000-000000000000`\n- **Validation rules:** `uuid`\n- `uuid` — custom validation rule.\n### `all`\n- **Description:** All\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The ids.0 must be a valid UUID.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "07. Home",
					"item": [
						{
							"name": "Home",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/home",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"home"
									]
								},
								"description": "**Route:** `client.home.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\nNot a paginated resource — returns the client home-screen payload (active sliders + up to 6 active top-level categories) in one shot. No query parameters are read by this endpoint.\n\n**Payload:**\nNo request body, no query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"Home data retrieved successfully\", \"data\": { \"sliders\": [...], \"categories\": [...] } }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/home?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"home"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.home.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Home data retrieved successfully\",\n    \"data\": {\n        \"sliders\": [],\n        \"categories\": []\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/home?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"home"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.home.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "08. Media / File Upload",
					"item": [
						{
							"name": "List All Media",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Media list retrieved successfully\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Create New Medium",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
											"type": "file"
										},
										{
											"key": "collection",
											"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/media",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									]
								},
								"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
													"type": "file"
												},
												{
													"key": "collection",
													"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/media",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											]
										},
										"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Upload Client",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
											"type": "file"
										},
										{
											"key": "type",
											"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/upload",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"upload"
									]
								},
								"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** public endpoint, no bearer token required."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"File uploaded successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"hash\": \"e428a7c4613e522faab63cdd1ef68f80\",\n        \"url\": \"/storage/uploads/general/b7dc8979-b6bb-49ac-aa43-9a2939f420e0.webp\",\n        \"mime_type\": \"image/webp\",\n        \"size\": 44,\n        \"original_name\": \"photo.jpg\",\n        \"variants\": {\n            \"thumbnail\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_thumbnail.webp\",\n            \"medium\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_medium.webp\",\n            \"large\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_large.webp\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Medium",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media/:media_id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media",
										":media_id"
									],
									"variable": [
										{
											"key": "media_id",
											"value": "{{media_id}}",
											"description": "Media_id ID"
										}
									]
								},
								"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media/:media_id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media",
												":media_id"
											],
											"variable": [
												{
													"key": "media_id",
													"value": "1",
													"description": "Media_id ID"
												}
											]
										},
										"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "09. Notifications",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"unread_count\": 0,\n        \"notifications\": {\n            \"super_admin_notifications\": [],\n            \"links\": {\n                \"first\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"last\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"prev\": null,\n                \"next\": null\n            },\n            \"meta\": {\n                \"current_page\": 1,\n                \"from\": null,\n                \"last_page\": 1,\n                \"links\": [\n                    {\n                        \"url\": null,\n                        \"label\": \"&laquo; Previous\",\n                        \"page\": null,\n                        \"active\": false\n                    },\n                    {\n                        \"url\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                        \"label\": \"1\",\n                        \"page\": 1,\n                        \"active\": true\n                    },\n                    {\n                        \"url\": null,\n                        \"label\": \"Next &raquo;\",\n                        \"page\": null,\n                        \"active\": false\n                    }\n                ],\n                \"path\": \"http://localhost:8000/api/v1/notifications\",\n                \"per_page\": 15,\n                \"to\": null,\n                \"total\": 0\n            }\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Notification Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Notification not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Clear All Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/clear-all",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										"clear-all"
									]
								},
								"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/clear-all",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												"clear-all"
											]
										},
										"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						},
						{
							"name": "Mark All Read Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"All notifications marked as read\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "10. Conversations & Messaging",
					"item": [
						{
							"name": "List All Conversations (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hi, I have a question.\",\n                \"created_at\": \"2026-08-20T10:52:49.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Invoice discrepancy\",\n                \"status\": \"Open\",\n                \"last_message\": \"Our latest invoice total does not match the contract terms.\",\n                \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Payout delay\",\n                \"status\": \"Open\",\n                \"last_message\": \"My last payout has not arrived yet.\",\n                \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"subject\": \"Billing question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 3,\n                \"sender_type\": \"customer\",\n                \"body\": \"Hi, I have a question.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Customer's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"subject\": \"Invoice discrepancy\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 9,\n                \"sender_type\": \"customer\",\n                \"body\": \"Our latest invoice total does not match the contract terms.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Payout delay\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"technician\",\n                \"body\": \"My last payout has not arrived yet.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another User's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Client)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									]
								},
								"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"subject\": \"Refund not received\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 2,\n                \"sender_type\": \"customer\",\n                \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									]
								},
								"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Contract renewal question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"We would like to renew our maintenance contract early — is that possible?\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - BUG: sender_type hardcoded to 'customer' for a company sender",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Sender type check\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"customer\",\n                \"body\": \"Verifying sender_type on the opening message.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Message (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Technician)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									]
								},
								"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Assignment issue\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"I was assigned an order outside my coverage area.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "11. Locations (Geo Hierarchy)",
					"item": [
						{
							"name": "List All Countries",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 2,\n                \"name\": \"Egypt\",\n                \"slug\": null,\n                \"currency\": \"EGP\",\n                \"nationality\": \"Egyptian\",\n                \"phone_code\": \"20\",\n                \"phone_starting_number\": 1,\n                \"phone_length\": 10,\n                \"short_name\": \"EG\",\n                \"continent\": \"africa\",\n                \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Governorates",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 2,\n                \"name\": \"Cairo\",\n                \"slug\": \"cairo\",\n                \"country_id\": 7,\n                \"lat\": 30,\n                \"lng\": 31,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"country\": {\n                    \"id\": 7,\n                    \"name\": \"Egypt\",\n                    \"short_name\": \"EG\",\n                    \"phone_code\": \"20\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Regions",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 2,\n                \"name\": \"Maadi\",\n                \"slug\": \"maadi\",\n                \"governorate_id\": 7,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.25,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"governorate\": {\n                    \"id\": 7,\n                    \"name\": \"Cairo\"\n                },\n                \"shipping_zone\": {\n                    \"id\": 1,\n                    \"name\": \"Zone A\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Country Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\",\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Saudi Arabia\",\n            \"slug\": null,\n            \"currency\": \"SAR\",\n            \"nationality\": \"Saudi\"\n        },\n        \"ar\": {\n            \"name\": \"السعودية\",\n            \"slug\": null,\n            \"currency\": \"ريال\",\n            \"nationality\": \"سعودي\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Governorate Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\",\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"country\": {\n            \"id\": 7,\n            \"name\": \"Egypt\",\n            \"short_name\": \"EG\",\n            \"phone_code\": \"20\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"regions\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Alexandria\",\n            \"slug\": \"alexandria\"\n        },\n        \"ar\": {\n            \"name\": \"الإسكندرية\",\n            \"slug\": \"alex-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Region Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\",\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"governorate\": {\n            \"id\": 7,\n            \"name\": \"Cairo\"\n        },\n        \"shipping_zone\": {\n            \"id\": 1,\n            \"name\": \"Zone A\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Nasr City\",\n            \"slug\": \"nasr-city\"\n        },\n        \"ar\": {\n            \"name\": \"مدينة نصر\",\n            \"slug\": \"nasr-city-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									]
								},
								"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Duplicate Phone Code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"country_id\": 1,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									]
								},
								"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a country.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Country",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected country does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"governorate_id\": 1,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									]
								},
								"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Governorate field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Governorate",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected governorate does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia Updated\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								}
							]
						},
						{
							"name": "Countries Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 31,\n                \"phone_code\": null,\n                \"phone_starting_number\": null,\n                \"phone_length\": null,\n                \"short_name\": null,\n                \"continent\": \"asia\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": null,\n                \"slug\": null,\n                \"currency\": null,\n                \"nationality\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Governorates Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 1,\n                \"country_id\": 32,\n                \"lat\": 30.04,\n                \"lng\": 31.23,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"القاهرة\",\n                \"slug\": \"القاهرة\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Regions Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 1,\n                \"governorate_id\": 2,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.22,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"مدينة نصر\",\n                \"slug\": \"مدينة-نصر\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Delete Country",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Governorate",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Region",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Countries)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										"bulk"
									]
								},
								"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Governorates)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										"bulk"
									]
								},
								"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Regions)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										"bulk"
									]
								},
								"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "12. Branches",
					"item": [
						{
							"name": "List All Branches (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"company_id\": 2,\n                \"company_name\": \"Keaton Schuppe\",\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"0221234567\",\n                \"address_text\": \"12 Tahrir Street, Cairo\",\n                \"latitude\": \"30.044420\",\n                \"longitude\": \"31.235712\",\n                \"working_hours\": [\n                    {\n                        \"to\": \"17:00\",\n                        \"day\": \"sunday\",\n                        \"from\": \"09:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Branches (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists own branches",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"1122233344\",\n                \"address_text\": \"123 Main St, Downtown\",\n                \"latitude\": 24.7136,\n                \"longitude\": 46.6753,\n                \"allowed_slots\": [\n                    \"morning\",\n                    \"afternoon\"\n                ],\n                \"working_hours\": [\n                    {\n                        \"day\": \"sunday\",\n                        \"day_label\": \"Sunday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    },\n                    {\n                        \"day\": \"monday\",\n                        \"day_label\": \"Monday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 11:20:50\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - own branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - branch belongs to a different company",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"company_id\": 10,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									]
								},
								"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Company field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"branch_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									]
								},
								"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing required fields",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"0221234599\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Company)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"1122233355\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - updating another company's branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Contacts Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"contacts"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch contacts updated successfully.\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"branch_id\": 1,\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        },\n        {\n            \"id\": 2,\n            \"branch_id\": 1,\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The contacts field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Active Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deactivated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - deletable branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - deleting another company's branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - branch has scheduled visits (BR-12)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Branch cannot be deleted — it has scheduled visits.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										"bulk"
									]
								},
								"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "13. Categories & Services (Catalog)",
					"item": [
						{
							"name": "List All Categories (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 2,\n                \"name\": \"Plumbing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": null,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"parent\": null,\n                \"has_children\": false,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/categories?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/categories\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 8,\n                \"name\": \"Pipe Fixing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": 7,\n                \"parent\": {\n                    \"id\": 7,\n                    \"name\": \"Plumbing\"\n                },\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"price\": \"50.00\",\n                \"contract_price\": \"45.00\",\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/services?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/services\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Categories (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists top-level categories",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Categories retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 30,\n            \"name\": \"Plumbing\",\n            \"description\": \"Pipe and water repairs\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"visit_price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Category Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Electrical\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": null,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"parent\": null,\n        \"has_children\": false,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"children\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Electrical\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كهرباء\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Service Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"name\": \"Leak Detection\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": 7,\n        \"parent\": {\n            \"id\": 7,\n            \"name\": \"Plumbing\"\n        },\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Leak Detection\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كشف التسريبات\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									]
								},
								"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Name (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									]
								},
								"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Category field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Parent",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected parent must be a top-level category.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "Update Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "List Service Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories"
									]
								},
								"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories"
											]
										},
										"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"\\u0627\\u0644\\u0633\\u0628\\u0627\\u0643\\u0629\",\n            \"description\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0645\\u0648\\u0627\\u0633\\u064a\\u0631 \\u0648\\u0627\\u0644\\u0635\\u0631\\u0641 \\u0648\\u062a\\u0631\\u0643\\u064a\\u0628\\u0627\\u062a \\u0627\\u0644\\u0645\\u064a\\u0627\\u0647\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 6,\n            \"name\": \"\\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0621\",\n            \"description\": \"\\u0627\\u0644\\u0623\\u0633\\u0644\\u0627\\u0643 \\u0648\\u0627\\u0644\\u0645\\u0642\\u0627\\u0628\\u0633 \\u0648\\u0627\\u0644\\u0625\\u0635\\u0644\\u0627\\u062d\\u0627\\u062a \\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0626\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 11,\n            \"name\": \"\\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641 \\u0648\\u0627\\u0644\\u062a\\u0628\\u0631\\u064a\\u062f\",\n            \"description\": \"\\u062a\\u0631\\u0643\\u064a\\u0628 \\u0648\\u0635\\u064a\\u0627\\u0646\\u0629 \\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 3,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 16,\n            \"name\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 4,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 20,\n            \"name\": \"\\u0627\\u0644\\u062f\\u0647\\u0627\\u0646\\u0627\\u062a \\u0648\\u0627\\u0644\\u0646\\u062c\\u0627\\u0631\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0627\\u0644\\u062f\\u0647\\u0627\\u0646 \\u0648\\u0627\\u0644\\u0623\\u0639\\u0645\\u0627\\u0644 \\u0627\\u0644\\u062e\\u0634\\u0628\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 5,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        }\n    ]\n}\n"
								}
							]
						},
						{
							"name": "List Category Services (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list active services under a category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 27,\n            \"parent_id\": 26,\n            \"name\": \"Wiring Repair\",\n            \"description\": \"Fix wiring\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        },\n        {\n            \"id\": 28,\n            \"parent_id\": 26,\n            \"name\": \"Socket Installation\",\n            \"description\": \"Install sockets\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List Category Services (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - lists services under category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Category services retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 31,\n            \"parent_id\": 30,\n            \"name\": \"Pipe Leak Repair\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": \"150.00\",\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Category",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Service",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Categories)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										"bulk"
									]
								},
								"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Services)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										"bulk"
									]
								},
								"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "14. General Settings & Feature Flags",
					"item": [
						{
							"name": "List All Feature flags",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"feature_flags\": [\n            {\n                \"id\": 1,\n                \"key\": \"new_checkout_flow\",\n                \"is_enabled\": false,\n                \"targeting_rules\": {\n                    \"countries\": [\n                        \"SA\",\n                        \"AE\"\n                    ]\n                },\n                \"description\": \"Rolls out the redesigned checkout flow.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            },\n            {\n                \"id\": 2,\n                \"key\": \"wallet_top_up\",\n                \"is_enabled\": true,\n                \"targeting_rules\": null,\n                \"description\": \"Enables wallet top-up via gateway.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/feature-flags\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Settings",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list settings",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"My App\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - list settings after update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"Maintenance Platform\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@maintenance-platform.example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									]
								},
								"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"key\": \"sms_notifications\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"percentage\": 50\n        },\n        \"description\": \"Enables SMS notifications for order updates.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"new_checkout_flow\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"countries\": [\n                \"SA\",\n                \"AE\"\n            ]\n        },\n        \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Setting",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									]
								},
								"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `SettingService::update()` calls `AppConfig::updateOrCreate(['key' => ...], ['value' => ...])`, which never sets `group` — a non-nullable column with no default. Updating an EXISTING key works fine (only `value` changes), but submitting a brand-new key throws a database error, returned as a 500. See `app/Services/Admin/SettingService.php:52-57` and `database/migrations/2026_07_26_090606_create_app_configs_table.php:24`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - bulk update existing settings",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings updated successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing setting key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Each setting must have a key.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - settings not an array",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Settings must be provided as an array.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 500 Internal Server Error: 500 Internal Server Error - BUG: new key insert fails (group column has no default)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Internal Server Error",
									"code": 500,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"SQLSTATE[HY000]: General error: 1364 Field 'group' doesn't have a default value (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: maintenance_testing_ad_a, SQL: insert into `app_configs` (`key`, `value`, `updated_at`, `created_at`) values (brand_new_setting_key, some value, 2026-08-20 12:09:45, 2026-08-20 12:09:45))\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Feature flag",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Feature flag Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id",
										"toggle"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Feature flag toggled\",\n    \"data\": {\n        \"id\": 2,\n        \"key\": \"wallet_top_up\",\n        \"is_enabled\": false,\n        \"targeting_rules\": null,\n        \"description\": \"Enables wallet top-up via gateway.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										"bulk"
									]
								},
								"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "15. Search",
					"item": [
						{
							"name": "Search Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/search?search=pipe",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"search"
									],
									"query": [
										{
											"key": "search",
											"value": "pipe"
										}
									]
								},
								"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\nCase-insensitive substring search over active, bookable services (leaf `Category` rows with a price) by translated name/description. Not paginated — runs an unpaginated query and reads only `search` (or `query` as a fallback param name); does not accept `page`/`per_page`/`sort`/`paginate`/`filters[...]`.\n\n**Payload:**\nNo request body.\n\n**Query parameters:**\n- `search` — Search term, matched against translated service `name` and `description` (optional; `query` also works as a fallback param name)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"Search results retrieved successfully\", \"data\": [ { \"id\": 25, \"name\": \"...\", \"description\": \"...\", \"parent\": {...} } ] }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - search services by name/description",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 25,\n            \"parent_id\": 24,\n            \"name\": \"Pipe Repair Plumbing\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 24,\n                \"name\": \"Plumbing Category\"\n            },\n            \"created_at\": \"2026-08-20T10:51:46.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no matches found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "16. Health & Status",
					"item": [
						{
							"name": "Health Check",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/health",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"health"
									]
								},
								"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\nInfrastructure health probe — checks database, cache, queue, and storage connectivity/latency and reports overall `healthy`/`degraded` status. Not a resource endpoint (no pagination/filtering/search), and the response does not use the standard `{status, message, data}` envelope — `HealthController::index()` calls `response()->json()` directly rather than the `json()` helper. Intended for load balancers and uptime monitors.\n\n**Payload:**\nNo request body, no query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"healthy\", \"checks\": { \"database\": {...}, \"cache\": {...}, \"queue\": {...}, \"storage\": {...} }, \"version\": \"1.0.0\", \"timestamp\": \"...\" }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/health?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"health"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"healthy\",\n    \"checks\": {\n        \"database\": {\n            \"status\": \"up\",\n            \"latency_ms\": 0.38\n        },\n        \"cache\": {\n            \"status\": \"up\",\n            \"driver\": \"database\",\n            \"latency_ms\": 4.35\n        },\n        \"queue\": {\n            \"status\": \"up\",\n            \"driver\": \"database\"\n        },\n        \"storage\": {\n            \"status\": \"up\",\n            \"driver\": \"local\"\n        }\n    },\n    \"version\": \"1.0.0\",\n    \"timestamp\": \"2026-08-19T21:35:04.385732Z\"\n}"
								}
							]
						},
						{
							"name": "Bootstrap Config",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/config/bootstrap",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"config",
										"bootstrap"
									]
								},
								"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/config/bootstrap",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"config",
												"bootstrap"
											]
										},
										"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Bootstrap configuration retrieved\",\n    \"data\": {\n        \"app\": {\n            \"min_version\": \"1.0.0\",\n            \"force_update\": false,\n            \"maintenance\": {\n                \"enabled\": false,\n                \"message\": \"Service temporarily unavailable\",\n                \"platforms\": []\n            }\n        },\n        \"features\": {\n            \"enable_notifications\": false,\n            \"enable_wallet\": true,\n            \"enable_cod\": true,\n            \"enable_reviews\": false,\n            \"maintenance_mode\": false,\n            \"new_checkout_flow\": true\n        },\n        \"integrations\": [],\n        \"ui\": {\n            \"primary_color\": \"#1d4ed8\",\n            \"home_sections_order\": \"sliders,categories,featured,new_arrivals\"\n        },\n        \"limits\": {\n            \"min_order_amount\": \"50\",\n            \"max_cart_items\": \"20\",\n            \"free_shipping_threshold\": \"500\"\n        },\n        \"urls\": []\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "17. Content & Reference (FAQs, Pages, Sliders)",
					"item": [
						{
							"name": "List All Faqs (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"f_a_q_s\": [\n            {\n                \"id\": 1,\n                \"type\": \"General\",\n                \"question\": \"What is this?\",\n                \"answer\": \"A maintenance platform.\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/faqs?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/faqs\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Pages",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"static_pages\": [\n            {\n                \"id\": 1,\n                \"type\": \"About Us\",\n                \"title\": \"About Us\",\n                \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/pages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/pages\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Sliders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"sliders\": [\n            {\n                \"id\": 1,\n                \"title\": \"Sale\",\n                \"subtitle\": \"Big discounts\",\n                \"link\": \"https://example.com\",\n                \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/sliders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/sliders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this is the route that actually answers `GET /client/faqs` today — it requires authentication even though FAQs are public content. A second, intentionally-public route (`client.content.faqs`) is registered earlier at the identical URI but is currently shadowed and unreachable (same-path route collision). Until that's fixed, calling `/client/faqs` without a bearer token returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 2,\n            \"type\": \"General\",\n            \"question\": \"كيف أنشئ حساب؟\",\n            \"answer\": \"انقر على التسجيل واملأ بياناتك.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I add a branch?\",\n            \"answer\": \"Use the Branches endpoint to add a new branch to your company account.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I get paid?\",\n            \"answer\": \"Payouts are processed weekly to your wallet.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Faq Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Orders And Payment\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"updated_at\": \"2026-08-20 12:09:42\",\n        \"en\": {\n            \"question\": \"How do I pay?\",\n            \"answer\": \"Via wallet or gateway.\"\n        },\n        \"ar\": {\n            \"question\": \"كيف ادفع؟\",\n            \"answer\": \"عبر المحفظة أو البوابة.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Page Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Return Policy\",\n        \"title\": \"Terms\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"content\": \"Terms content.\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Terms\",\n            \"content\": \"Terms content.\"\n        },\n        \"ar\": {\n            \"title\": \"الشروط\",\n            \"content\": \"محتوى الشروط.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Slider Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\",\n        \"link\": \"https://example.com/promo\",\n        \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Promo\",\n            \"subtitle\": \"Limited time\"\n        },\n        \"ar\": {\n            \"title\": \"عرض\",\n            \"subtitle\": \"وقت محدود\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									]
								},
								"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Question (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									]
								},
								"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a type.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									]
								},
								"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Link must be a valid URL.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}"
								}
							]
						},
						{
							"name": "Page Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/pages/:type",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"pages",
										":type"
									],
									"variable": [
										{
											"key": "type",
											"value": "shipping_policy",
											"description": "Static page type/slug — see ContentController for the allowed values."
										}
									]
								},
								"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Page retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true,\n        \"type\": \"shipping_policy\",\n        \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"title\": \"سياسة الشحن\",\n        \"content\": \"التوصيل العادي يستغرق 3-5 أيام عمل.\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Sliders Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Sliders retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"link\": \"https://example.com/summer\",\n            \"sort_order\": 1,\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"title\": \"تخفيضات الصيف\",\n            \"subtitle\": \"خصم يصل الى 50%\"\n        }\n    ]\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this route sits inside the `auth:api + active` protected group in routes/api/v1/client.php, requiring a bearer token even though About Us content is meant to be public (same pattern as `client.content.page`, which IS public). Likely a route-placement bug worth fixing — flagged for the routes owner."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"About Us\",\n        \"title\": \"من نحن\",\n        \"content\": \"نقدم خدمة عالية الجودة.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — this is inside the protected group and requires a bearer token even though Privacy Policy content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"سياسة الخصوصية\",\n        \"content\": \"خصوصيتك مهمة لنا.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect maintenance companies with skilled technicians and clients.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your company data is handled according to our privacy policy.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect skilled technicians with customers.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your privacy is important to us.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Faq",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Page",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Slider",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (FAQs)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										"bulk"
									]
								},
								"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Invalid ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Static Pages)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										"bulk"
									]
								},
								"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Sliders)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										"bulk"
									]
								},
								"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "Technician",
			"item": [
				{
					"name": "01. Authentication (Session)",
					"item": [
						{
							"name": "Logout",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"pm.collectionVariables.set(\"technician_token\", \"\");"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/auth/logout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"auth",
										"logout"
									]
								},
								"description": "**Route:** `technician.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - logged out",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `technician.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Logged out successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `technician.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "02. Profile",
					"item": [
						{
							"name": "Update Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Updated Name\",\n    \"years_experience\": 8\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"profile"
									]
								},
								"description": "**Route:** `technician.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|nullable|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|nullable|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:regions,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|nullable|array`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:0|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - update full_name and years_experience",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Name\",\n    \"years_experience\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile"
											]
										},
										"description": "**Route:** `technician.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|nullable|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|nullable|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:regions,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|nullable|array`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:0|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile updated successfully\",\n    \"data\": {\n        \"id\": 213,\n        \"name\": \"Jared Becker\",\n        \"email\": \"drew03@example.net\",\n        \"phone\": \"1084266685\",\n        \"username\": null,\n        \"user_type\": \"technician\",\n        \"status\": \"active\",\n        \"email_verified_at\": \"2026-08-20T11:20:52.000000Z\",\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T11:20:52.000000Z\",\n        \"updated_at\": \"2026-08-20T11:20:52.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid email",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Name\",\n    \"years_experience\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile"
											]
										},
										"description": "**Route:** `technician.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|nullable|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|nullable|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:regions,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|nullable|array`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:0|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "PUT",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Name\",\n    \"years_experience\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile"
											]
										},
										"description": "**Route:** `technician.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|nullable|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|nullable|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|exists:regions,id`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|nullable|array`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:0|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|nullable|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Password Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"current_password\": \"oldpassword123\",\n    \"password\": \"newpassword456\",\n    \"password_confirmation\": \"newpassword456\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/profile/change-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"profile",
										"change-password"
									]
								},
								"description": "**Route:** `technician.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `current_password`\n- **Description:** Current password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `OldPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - password changed",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"oldpassword123\",\n    \"password\": \"newpassword456\",\n    \"password_confirmation\": \"newpassword456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `technician.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `current_password`\n- **Description:** Current password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `OldPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password changed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - wrong current password",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"oldpassword123\",\n    \"password\": \"newpassword456\",\n    \"password_confirmation\": \"newpassword456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `technician.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `current_password`\n- **Description:** Current password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `OldPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid credentials. Please check your email/phone and password.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - confirmation mismatch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"oldpassword123\",\n    \"password\": \"newpassword456\",\n    \"password_confirmation\": \"newpassword456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `technician.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `current_password`\n- **Description:** Current password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `OldPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Password confirmation does not match.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"oldpassword123\",\n    \"password\": \"newpassword456\",\n    \"password_confirmation\": \"newpassword456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `technician.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `current_password`\n- **Description:** Current password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `OldPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `password_confirmation`\n- **Description:** Password confirmation\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `NewPassword123!`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Profile Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"profile"
									]
								},
								"description": "**Route:** `technician.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile"
											]
										},
										"description": "**Route:** `technician.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile retrieved successfully\",\n    \"data\": {\n        \"user\": {\n            \"id\": 212,\n            \"name\": \"Alfred Ankunding DVM\",\n            \"email\": \"hveum@example.com\",\n            \"phone\": \"1019568932\",\n            \"user_type\": \"technician\",\n            \"status\": \"active\",\n            \"created_at\": \"2026-08-20 11:20:52\"\n        },\n        \"profile\": {\n            \"full_name\": \"Elliot Emard\",\n            \"id_number\": null,\n            \"address\": null,\n            \"country\": null,\n            \"governorate\": null,\n            \"region\": null,\n            \"category_id\": 46,\n            \"category_name\": \"Plumbing\",\n            \"coverage_areas\": [],\n            \"years_experience\": null,\n            \"daily_order_capacity\": 5,\n            \"employment_type\": \"full_time\",\n            \"availability_status\": \"available\",\n            \"avg_rating\": 0,\n            \"completed_orders_count\": 0,\n            \"personal_photo\": null,\n            \"national_id_front\": null,\n            \"national_id_back\": null,\n            \"cv_file\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile"
											]
										},
										"description": "**Route:** `technician.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03. Availability",
					"item": [
						{
							"name": "Toggle Availability Profile",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/profile/toggle-availability",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"profile",
										"toggle-availability"
									]
								},
								"description": "**Route:** `technician.profile.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - toggled to unavailable",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"toggle-availability"
											]
										},
										"description": "**Route:** `technician.profile.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Availability status updated\",\n    \"data\": {\n        \"availability_status\": \"unavailable\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - toggled back to available",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"toggle-availability"
											]
										},
										"description": "**Route:** `technician.profile.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Availability status updated\",\n    \"data\": {\n        \"availability_status\": \"available\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"toggle-availability"
											]
										},
										"description": "**Route:** `technician.profile.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - no technician profile",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/profile/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"profile",
												"toggle-availability"
											]
										},
										"description": "**Route:** `technician.profile.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Technician profile not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Assigned Orders & Jobs",
					"item": [
						{
							"name": "List All Orders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list assigned orders",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Orders retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 53,\n                \"uuid\": \"02bd4c0a-8587-4608-afdc-728a63259d5c\",\n                \"order_number\": \"ORD-260820-MMGY\",\n                \"status\": \"accepted\",\n                \"scheduled_date\": \"2026-08-23\",\n                \"address\": {\n                    \"id\": 57,\n                    \"title\": \"Home\"\n                },\n                \"items\": [\n                    {\n                        \"service_name\": \"sequi consequatur consectetur\",\n                        \"quantity\": 2\n                    }\n                ],\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/orders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - scope=active",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Orders retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 53,\n                \"uuid\": \"02bd4c0a-8587-4608-afdc-728a63259d5c\",\n                \"order_number\": \"ORD-260820-MMGY\",\n                \"status\": \"accepted\",\n                \"scheduled_date\": \"2026-08-23\",\n                \"address\": {\n                    \"id\": 57,\n                    \"title\": \"Home\"\n                },\n                \"items\": [\n                    {\n                        \"service_name\": \"sequi consequatur consectetur\",\n                        \"quantity\": 2\n                    }\n                ],\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/orders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - scope=history (empty)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Orders retrieved successfully.\",\n    \"data\": {\n        \"data\": [],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": null,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/orders\",\n            \"per_page\": 15,\n            \"to\": null,\n            \"total\": 0\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Order Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:order",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":order"
									],
									"variable": [
										{
											"key": "order",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - real uuid resolves",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order retrieved successfully.\",\n    \"data\": {\n        \"id\": 54,\n        \"uuid\": \"a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9\",\n        \"order_number\": \"ORD-260820-GZLK\",\n        \"status\": \"accepted\",\n        \"scheduled_date\": \"2026-08-27\",\n        \"total_amount\": \"800.14\",\n        \"customer\": {\n            \"id\": 220,\n            \"name\": \"Mark Glover\",\n            \"phone\": \"1371432353\"\n        },\n        \"address\": {\n            \"id\": 58,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 50,\n                \"service_name\": \"et ut repellendus\",\n                \"quantity\": 2,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": null,\n                \"to_status\": \"accepted\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - integer id in uuid slot (uuid-vs-id regression check)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown uuid",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - another technician's order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "a43bfbc6-d4a1-4054-8d3a-4be3c0def5b9",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `technician.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "05. Accept & Reject Assignment",
					"item": [
						{
							"name": "Accept Assignment Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/accept-assignment",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"accept-assignment"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.accept-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - assignment accepted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/accept-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"accept-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "30c2a7c2-d68c-4fde-9251-77aab3e27f0c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.accept-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Assignment accepted.\",\n    \"data\": {\n        \"id\": 56,\n        \"uuid\": \"30c2a7c2-d68c-4fde-9251-77aab3e27f0c\",\n        \"order_number\": \"ORD-260820-MKXW\",\n        \"status\": \"accepted\",\n        \"scheduled_date\": null,\n        \"total_amount\": \"272.55\",\n        \"customer\": {\n            \"id\": 223,\n            \"name\": \"Dante Cruickshank\",\n            \"phone\": \"1759462792\"\n        },\n        \"address\": {\n            \"id\": 59,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 52,\n                \"service_name\": \"eaque nostrum vitae\",\n                \"quantity\": 3,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"pending\",\n                \"to_status\": \"accepted\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": \"pending\",\n                \"to_status\": \"accepted\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - not awaiting assignment response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/accept-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"accept-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "30c2a7c2-d68c-4fde-9251-77aab3e27f0c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.accept-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order has no pending assignment to accept or reject.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - integer id in uuid slot",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/accept-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"accept-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "30c2a7c2-d68c-4fde-9251-77aab3e27f0c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.accept-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/accept-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"accept-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "30c2a7c2-d68c-4fde-9251-77aab3e27f0c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.accept-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject Assignment Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/reject-assignment",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"reject-assignment"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.reject-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - assignment rejected",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/reject-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"reject-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "e0f11e04-6e6a-4416-ad9c-aba2e5a7cb6e",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.reject-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Assignment rejected.\",\n    \"data\": {\n        \"id\": 57,\n        \"uuid\": \"e0f11e04-6e6a-4416-ad9c-aba2e5a7cb6e\",\n        \"order_number\": \"ORD-260820-CBIU\",\n        \"status\": \"pending\",\n        \"scheduled_date\": \"2026-09-01\",\n        \"total_amount\": \"265.43\",\n        \"customer\": {\n            \"id\": 225,\n            \"name\": \"Maia Wintheiser DDS\",\n            \"phone\": \"1334210049\"\n        },\n        \"address\": {\n            \"id\": 60,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 53,\n                \"service_name\": \"pariatur quis quia\",\n                \"quantity\": 1,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"pending\",\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - not awaiting assignment response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/reject-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"reject-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "e0f11e04-6e6a-4416-ad9c-aba2e5a7cb6e",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.reject-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order has no pending assignment to accept or reject.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/reject-assignment",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"reject-assignment"
											],
											"variable": [
												{
													"key": "id",
													"value": "e0f11e04-6e6a-4416-ad9c-aba2e5a7cb6e",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.reject-assignment`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "06. Status Updates",
					"item": [
						{
							"name": "Start Execution Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/start-execution",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"start-execution"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.start-execution`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - on_the_way -> start",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-execution",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-execution"
											],
											"variable": [
												{
													"key": "id",
													"value": "a9c7873f-042a-42b8-b586-c3af35135a0a",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-execution`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order updated successfully.\",\n    \"data\": {\n        \"id\": 60,\n        \"uuid\": \"a9c7873f-042a-42b8-b586-c3af35135a0a\",\n        \"order_number\": \"ORD-260820-GBPT\",\n        \"status\": \"start\",\n        \"scheduled_date\": \"2026-08-26\",\n        \"total_amount\": \"637.24\",\n        \"customer\": {\n            \"id\": 229,\n            \"name\": \"Gilbert Klein\",\n            \"phone\": \"1132036270\"\n        },\n        \"address\": {\n            \"id\": 62,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 56,\n                \"service_name\": \"ullam error ad\",\n                \"quantity\": 1,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"on_the_way\",\n                \"to_status\": \"start\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": \"on_the_way\",\n                \"to_status\": \"start\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"on_the_way\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid transition (still pending)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-execution",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-execution"
											],
											"variable": [
												{
													"key": "id",
													"value": "a9c7873f-042a-42b8-b586-c3af35135a0a",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-execution`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This status change is not allowed from the order's current status.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-execution",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-execution"
											],
											"variable": [
												{
													"key": "id",
													"value": "a9c7873f-042a-42b8-b586-c3af35135a0a",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-execution`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Start Heading Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/start-heading",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"start-heading"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.start-heading`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - accepted -> on_the_way",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-heading",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-heading"
											],
											"variable": [
												{
													"key": "id",
													"value": "ec442760-9125-4280-9974-1768f77cd8c1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-heading`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order updated successfully.\",\n    \"data\": {\n        \"id\": 59,\n        \"uuid\": \"ec442760-9125-4280-9974-1768f77cd8c1\",\n        \"order_number\": \"ORD-260820-DNOQ\",\n        \"status\": \"on_the_way\",\n        \"scheduled_date\": \"2026-08-30\",\n        \"total_amount\": \"711.64\",\n        \"customer\": {\n            \"id\": 227,\n            \"name\": \"Mrs. Fanny Luettgen\",\n            \"phone\": \"1575458589\"\n        },\n        \"address\": {\n            \"id\": 61,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 55,\n                \"service_name\": \"doloribus aperiam labore\",\n                \"quantity\": 2,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"accepted\",\n                \"to_status\": \"on_the_way\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": \"accepted\",\n                \"to_status\": \"on_the_way\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"accepted\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid transition",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-heading",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-heading"
											],
											"variable": [
												{
													"key": "id",
													"value": "ec442760-9125-4280-9974-1768f77cd8c1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-heading`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This status change is not allowed from the order's current status.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/start-heading",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"start-heading"
											],
											"variable": [
												{
													"key": "id",
													"value": "ec442760-9125-4280-9974-1768f77cd8c1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.start-heading`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Unreachable Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Customer is not answering calls or the door.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/unreachable",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"unreachable"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.unreachable`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - reported unreachable",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer is not answering calls or the door.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/unreachable",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"unreachable"
											],
											"variable": [
												{
													"key": "id",
													"value": "794043c5-64f9-47e7-b083-8a07e2a7727c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.unreachable`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Reported — the order has been unassigned for reassignment.\",\n    \"data\": {\n        \"id\": 63,\n        \"uuid\": \"794043c5-64f9-47e7-b083-8a07e2a7727c\",\n        \"order_number\": \"ORD-260820-JIVG\",\n        \"status\": \"pending\",\n        \"scheduled_date\": null,\n        \"total_amount\": \"697.73\",\n        \"customer\": {\n            \"id\": 233,\n            \"name\": \"Dora Parker\",\n            \"phone\": \"1214689814\"\n        },\n        \"address\": {\n            \"id\": 64,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 59,\n                \"service_name\": \"aut qui quia\",\n                \"quantity\": 1,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"on_the_way\",\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": \"on_the_way\",\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"on_the_way\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid state",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer is not answering calls or the door.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/unreachable",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"unreachable"
											],
											"variable": [
												{
													"key": "id",
													"value": "794043c5-64f9-47e7-b083-8a07e2a7727c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.unreachable`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The customer can only be reported unreachable while en route.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing reason",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer is not answering calls or the door.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/unreachable",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"unreachable"
											],
											"variable": [
												{
													"key": "id",
													"value": "794043c5-64f9-47e7-b083-8a07e2a7727c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.unreachable`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer is not answering calls or the door.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/unreachable",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"unreachable"
											],
											"variable": [
												{
													"key": "id",
													"value": "794043c5-64f9-47e7-b083-8a07e2a7727c",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.unreachable`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Upload Order Attachment",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/attachments",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"attachments"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"body": {
									"mode": "raw",
									"raw": "{\n    \"hash\": \"f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6\",\n    \"type\": \"before\",\n    \"note\": \"Leak visible under the sink before repair\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"description": "**Route:** `technician.orders.attachments.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`. `hash` must come from the shared media-upload endpoint first — this route only attaches an existing, not-yet-associated media record; it does not accept a file directly. Order must be assigned to the authenticated technician.\n\n**Field documentation:**\n### `hash`\n- **Description:** File\n- **Type:** `string`\n- **Required:** required\n- **Example:** `f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6`\n- **Validation rules:** `required|string`, plus a `MediaExists` check\n- `required` — must be provided.\n- `string` — must be text.\n- `MediaExists(type: ['image', 'application'])` — media must exist by hash, not already be attached to a different record, have a mime type starting with `image/` or `application/`, and its physical file must exist on disk.\n### `type`\n- **Description:** Attachment type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `before`\n- **Validation rules:** `required|string|in:before,after,report,issue,signature,other`\n- `required` — must be provided.\n- `in:before,after,report,issue,signature,other` — must be one of: before, after, report, issue, signature, other.\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Leak visible under the sink before repair.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/attachments",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"attachments"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{order_id}}",
													"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"body": {
											"mode": "raw",
											"raw": "{\n    \"hash\": \"f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6\",\n    \"type\": \"before\",\n    \"note\": \"Leak visible under the sink before repair\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"description": "**Route:** `technician.orders.attachments.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`. `hash` must come from the shared media-upload endpoint first — this route only attaches an existing, not-yet-associated media record; it does not accept a file directly. Order must be assigned to the authenticated technician.\n\n**Field documentation:**\n### `hash`\n- **Description:** File\n- **Type:** `string`\n- **Required:** required\n- **Example:** `f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6`\n- **Validation rules:** `required|string`, plus a `MediaExists` check\n- `required` — must be provided.\n- `string` — must be text.\n- `MediaExists(type: ['image', 'application'])` — media must exist by hash, not already be attached to a different record, have a mime type starting with `image/` or `application/`, and its physical file must exist on disk.\n### `type`\n- **Description:** Attachment type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `before`\n- **Validation rules:** `required|string|in:before,after,report,issue,signature,other`\n- `required` — must be provided.\n- `in:before,after,report,issue,signature,other` — must be one of: before, after, report, issue, signature, other.\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Leak visible under the sink before repair.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Attachment uploaded successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"type\": \"before\",\n        \"file_url\": \"https://example.com/storage/attachments/f3a1c9d8.jpg\",\n        \"note\": \"Leak visible under the sink before repair\",\n        \"uploaded_by\": 231,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: media hash not found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/attachments",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"attachments"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{order_id}}",
													"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"body": {
											"mode": "raw",
											"raw": "{\n    \"hash\": \"f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6\",\n    \"type\": \"before\",\n    \"note\": \"Leak visible under the sink before repair\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"description": "**Route:** `technician.orders.attachments.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`. `hash` must come from the shared media-upload endpoint first — this route only attaches an existing, not-yet-associated media record; it does not accept a file directly. Order must be assigned to the authenticated technician.\n\n**Field documentation:**\n### `hash`\n- **Description:** File\n- **Type:** `string`\n- **Required:** required\n- **Example:** `f3a1c9d8e7b6a5c4d3e2f1a0b9c8d7e6`\n- **Validation rules:** `required|string`, plus a `MediaExists` check\n- `required` — must be provided.\n- `string` — must be text.\n- `MediaExists(type: ['image', 'application'])` — media must exist by hash, not already be attached to a different record, have a mime type starting with `image/` or `application/`, and its physical file must exist on disk.\n### `type`\n- **Description:** Attachment type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `before`\n- **Validation rules:** `required|string|in:before,after,report,issue,signature,other`\n- `required` — must be provided.\n- `in:before,after,report,issue,signature,other` — must be one of: before, after, report, issue, signature, other.\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Leak visible under the sink before repair.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The uploaded file was not found. Please upload it again.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "07. Job Completion",
					"item": [
						{
							"name": "Finish Order",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/orders/:id/finish",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"orders",
										":id",
										"finish"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (`orders.uuid`) — NOT the numeric `orders.id`. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `technician.orders.finish`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - start -> finish",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/finish",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"finish"
											],
											"variable": [
												{
													"key": "id",
													"value": "e05bc1e8-e520-4e58-8100-748323a70ea0",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.finish`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order updated successfully.\",\n    \"data\": {\n        \"id\": 62,\n        \"uuid\": \"e05bc1e8-e520-4e58-8100-748323a70ea0\",\n        \"order_number\": \"ORD-260820-VTRK\",\n        \"status\": \"finish\",\n        \"scheduled_date\": null,\n        \"total_amount\": \"135.67\",\n        \"customer\": {\n            \"id\": 231,\n            \"name\": \"Prof. Aletha Wiza Jr.\",\n            \"phone\": \"1840597267\"\n        },\n        \"address\": {\n            \"id\": 63,\n            \"title\": \"Home\"\n        },\n        \"items\": [\n            {\n                \"id\": 58,\n                \"service_name\": \"iusto doloremque voluptatem\",\n                \"quantity\": 1,\n                \"notes\": null\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": \"start\",\n                \"to_status\": \"finish\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": \"start\",\n                \"to_status\": \"finish\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            },\n            {\n                \"from_status\": null,\n                \"to_status\": \"start\",\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:53+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid transition (already finished)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/finish",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"finish"
											],
											"variable": [
												{
													"key": "id",
													"value": "e05bc1e8-e520-4e58-8100-748323a70ea0",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.finish`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This status change is not allowed from the order's current status.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/orders/:id/finish",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"orders",
												":id",
												"finish"
											],
											"variable": [
												{
													"key": "id",
													"value": "e05bc1e8-e520-4e58-8100-748323a70ea0",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.orders.finish`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "08. Earnings, Wallet & Withdrawal",
					"item": [
						{
							"name": "Balance Wallet",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/wallet",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"wallet"
									]
								},
								"description": "**Route:** `technician.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - freelance technician (can_withdraw=true)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet"
											]
										},
										"description": "**Route:** `technician.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Balance retrieved successfully\",\n    \"data\": {\n        \"balance\": 250.5,\n        \"currency\": \"SAR\",\n        \"is_locked\": false,\n        \"can_withdraw\": true\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no wallet row yet (defaults to zero balance)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet"
											]
										},
										"description": "**Route:** `technician.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Balance retrieved successfully\",\n    \"data\": {\n        \"balance\": 0,\n        \"currency\": \"SAR\",\n        \"is_locked\": false\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet"
											]
										},
										"description": "**Route:** `technician.wallet.balance`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Transactions Wallet",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/wallet/transactions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"wallet",
										"transactions"
									]
								},
								"description": "**Route:** `technician.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list transactions",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"transactions"
											]
										},
										"description": "**Route:** `technician.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 9,\n                \"type\": \"reversal\",\n                \"type_label\": \"Transaction reversal\",\n                \"amount\": \"50.00\",\n                \"balance_after\": \"300.00\",\n                \"status\": \"completed\",\n                \"notes\": null,\n                \"related_order\": null,\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/wallet/transactions\",\n            \"per_page\": 20,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"transactions"
											]
										},
										"description": "**Route:** `technician.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 9,\n                \"type\": \"reversal\",\n                \"type_label\": \"Transaction reversal\",\n                \"amount\": \"50.00\",\n                \"balance_after\": \"300.00\",\n                \"status\": \"completed\",\n                \"notes\": null,\n                \"related_order\": null,\n                \"created_at\": \"2026-08-20T11:20:53+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/wallet/transactions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/wallet/transactions\",\n            \"per_page\": 20,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"transactions"
											]
										},
										"description": "**Route:** `technician.wallet.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Withdraw Wallet",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"withdraw_request_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"wallet",
										"withdraw"
									]
								},
								"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - withdrawal submitted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Withdrawal request submitted successfully\",\n    \"data\": {\n        \"user_id\": 237,\n        \"amount\": 200,\n        \"bank_name\": \"Al Rajhi Bank\",\n        \"account_number\": \"1234567890\",\n        \"iban\": \"SA0380000000608010167519\",\n        \"updated_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"id\": 2\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - insufficient balance",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Insufficient wallet balance\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing bank fields",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter the bank name.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - in-house technician cannot withdraw",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance changes are not available for this account type yet\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 200,\n    \"bank_name\": \"Al Rajhi Bank\",\n    \"account_number\": \"1234567890\",\n    \"iban\": \"SA0380000000608010167519\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/wallet/withdraw",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"wallet",
												"withdraw"
											]
										},
										"description": "**Route:** `technician.wallet.withdraw`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:1`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:1` — must be at least 1.\n### `bank_name`\n- **Description:** Bank Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `account_number`\n- **Description:** Account Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890123`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `iban`\n- **Description:** IBAN\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EG123456789012345678901234`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "09. Home",
					"item": [
						{
							"name": "Home Technician",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/home",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"home"
									]
								},
								"description": "**Route:** `technician.home`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/home",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"home"
											]
										},
										"description": "**Route:** `technician.home`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Home data retrieved successfully.\",\n    \"data\": {\n        \"availability_status\": \"available\",\n        \"is_available\": true,\n        \"current_orders\": [],\n        \"today_summary\": {\n            \"completed_orders\": 0,\n            \"upcoming_orders\": 0\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/home",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"home"
											]
										},
										"description": "**Route:** `technician.home`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - no technician profile",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/home",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"home"
											]
										},
										"description": "**Route:** `technician.home`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Technician profile not found.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "10. Media / File Upload",
					"item": [
						{
							"name": "List All Media",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Media list retrieved successfully\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Create New Medium",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
											"type": "file"
										},
										{
											"key": "collection",
											"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/media",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									]
								},
								"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
													"type": "file"
												},
												{
													"key": "collection",
													"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/media",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											]
										},
										"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Upload Client",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
											"type": "file"
										},
										{
											"key": "type",
											"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/upload",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"upload"
									]
								},
								"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** public endpoint, no bearer token required."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"File uploaded successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"hash\": \"e428a7c4613e522faab63cdd1ef68f80\",\n        \"url\": \"/storage/uploads/general/b7dc8979-b6bb-49ac-aa43-9a2939f420e0.webp\",\n        \"mime_type\": \"image/webp\",\n        \"size\": 44,\n        \"original_name\": \"photo.jpg\",\n        \"variants\": {\n            \"thumbnail\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_thumbnail.webp\",\n            \"medium\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_medium.webp\",\n            \"large\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_large.webp\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Medium",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media/:media_id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media",
										":media_id"
									],
									"variable": [
										{
											"key": "media_id",
											"value": "{{media_id}}",
											"description": "Media_id ID"
										}
									]
								},
								"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media/:media_id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media",
												":media_id"
											],
											"variable": [
												{
													"key": "media_id",
													"value": "1",
													"description": "Media_id ID"
												}
											]
										},
										"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "11. Notifications",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"unread_count\": 0,\n        \"notifications\": {\n            \"super_admin_notifications\": [],\n            \"links\": {\n                \"first\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"last\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"prev\": null,\n                \"next\": null\n            },\n            \"meta\": {\n                \"current_page\": 1,\n                \"from\": null,\n                \"last_page\": 1,\n                \"links\": [\n                    {\n                        \"url\": null,\n                        \"label\": \"&laquo; Previous\",\n                        \"page\": null,\n                        \"active\": false\n                    },\n                    {\n                        \"url\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                        \"label\": \"1\",\n                        \"page\": 1,\n                        \"active\": true\n                    },\n                    {\n                        \"url\": null,\n                        \"label\": \"Next &raquo;\",\n                        \"page\": null,\n                        \"active\": false\n                    }\n                ],\n                \"path\": \"http://localhost:8000/api/v1/notifications\",\n                \"per_page\": 15,\n                \"to\": null,\n                \"total\": 0\n            }\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Notification Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Notification not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Clear All Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/clear-all",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										"clear-all"
									]
								},
								"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/clear-all",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												"clear-all"
											]
										},
										"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						},
						{
							"name": "Mark All Read Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"All notifications marked as read\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "12. Conversations & Messaging",
					"item": [
						{
							"name": "List All Conversations (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hi, I have a question.\",\n                \"created_at\": \"2026-08-20T10:52:49.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Invoice discrepancy\",\n                \"status\": \"Open\",\n                \"last_message\": \"Our latest invoice total does not match the contract terms.\",\n                \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Payout delay\",\n                \"status\": \"Open\",\n                \"last_message\": \"My last payout has not arrived yet.\",\n                \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"subject\": \"Billing question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 3,\n                \"sender_type\": \"customer\",\n                \"body\": \"Hi, I have a question.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Customer's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"subject\": \"Invoice discrepancy\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 9,\n                \"sender_type\": \"customer\",\n                \"body\": \"Our latest invoice total does not match the contract terms.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Payout delay\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"technician\",\n                \"body\": \"My last payout has not arrived yet.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another User's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Client)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									]
								},
								"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"subject\": \"Refund not received\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 2,\n                \"sender_type\": \"customer\",\n                \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									]
								},
								"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Contract renewal question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"We would like to renew our maintenance contract early — is that possible?\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - BUG: sender_type hardcoded to 'customer' for a company sender",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Sender type check\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"customer\",\n                \"body\": \"Verifying sender_type on the opening message.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Message (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Technician)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									]
								},
								"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Assignment issue\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"I was assigned an order outside my coverage area.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "13. Locations (Geo Hierarchy)",
					"item": [
						{
							"name": "List All Countries",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 2,\n                \"name\": \"Egypt\",\n                \"slug\": null,\n                \"currency\": \"EGP\",\n                \"nationality\": \"Egyptian\",\n                \"phone_code\": \"20\",\n                \"phone_starting_number\": 1,\n                \"phone_length\": 10,\n                \"short_name\": \"EG\",\n                \"continent\": \"africa\",\n                \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Governorates",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 2,\n                \"name\": \"Cairo\",\n                \"slug\": \"cairo\",\n                \"country_id\": 7,\n                \"lat\": 30,\n                \"lng\": 31,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"country\": {\n                    \"id\": 7,\n                    \"name\": \"Egypt\",\n                    \"short_name\": \"EG\",\n                    \"phone_code\": \"20\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Regions",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 2,\n                \"name\": \"Maadi\",\n                \"slug\": \"maadi\",\n                \"governorate_id\": 7,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.25,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"governorate\": {\n                    \"id\": 7,\n                    \"name\": \"Cairo\"\n                },\n                \"shipping_zone\": {\n                    \"id\": 1,\n                    \"name\": \"Zone A\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Country Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\",\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Saudi Arabia\",\n            \"slug\": null,\n            \"currency\": \"SAR\",\n            \"nationality\": \"Saudi\"\n        },\n        \"ar\": {\n            \"name\": \"السعودية\",\n            \"slug\": null,\n            \"currency\": \"ريال\",\n            \"nationality\": \"سعودي\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Governorate Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\",\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"country\": {\n            \"id\": 7,\n            \"name\": \"Egypt\",\n            \"short_name\": \"EG\",\n            \"phone_code\": \"20\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"regions\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Alexandria\",\n            \"slug\": \"alexandria\"\n        },\n        \"ar\": {\n            \"name\": \"الإسكندرية\",\n            \"slug\": \"alex-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Region Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\",\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"governorate\": {\n            \"id\": 7,\n            \"name\": \"Cairo\"\n        },\n        \"shipping_zone\": {\n            \"id\": 1,\n            \"name\": \"Zone A\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Nasr City\",\n            \"slug\": \"nasr-city\"\n        },\n        \"ar\": {\n            \"name\": \"مدينة نصر\",\n            \"slug\": \"nasr-city-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									]
								},
								"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Duplicate Phone Code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"country_id\": 1,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									]
								},
								"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a country.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Country",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected country does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"governorate_id\": 1,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									]
								},
								"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Governorate field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Governorate",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected governorate does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia Updated\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								}
							]
						},
						{
							"name": "Countries Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 31,\n                \"phone_code\": null,\n                \"phone_starting_number\": null,\n                \"phone_length\": null,\n                \"short_name\": null,\n                \"continent\": \"asia\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": null,\n                \"slug\": null,\n                \"currency\": null,\n                \"nationality\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Governorates Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 1,\n                \"country_id\": 32,\n                \"lat\": 30.04,\n                \"lng\": 31.23,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"القاهرة\",\n                \"slug\": \"القاهرة\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Regions Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 1,\n                \"governorate_id\": 2,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.22,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"مدينة نصر\",\n                \"slug\": \"مدينة-نصر\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Delete Country",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Governorate",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Region",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Countries)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										"bulk"
									]
								},
								"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Governorates)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										"bulk"
									]
								},
								"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Regions)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										"bulk"
									]
								},
								"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "14. Branches",
					"item": [
						{
							"name": "List All Branches (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"company_id\": 2,\n                \"company_name\": \"Keaton Schuppe\",\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"0221234567\",\n                \"address_text\": \"12 Tahrir Street, Cairo\",\n                \"latitude\": \"30.044420\",\n                \"longitude\": \"31.235712\",\n                \"working_hours\": [\n                    {\n                        \"to\": \"17:00\",\n                        \"day\": \"sunday\",\n                        \"from\": \"09:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Branches (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists own branches",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"1122233344\",\n                \"address_text\": \"123 Main St, Downtown\",\n                \"latitude\": 24.7136,\n                \"longitude\": 46.6753,\n                \"allowed_slots\": [\n                    \"morning\",\n                    \"afternoon\"\n                ],\n                \"working_hours\": [\n                    {\n                        \"day\": \"sunday\",\n                        \"day_label\": \"Sunday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    },\n                    {\n                        \"day\": \"monday\",\n                        \"day_label\": \"Monday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 11:20:50\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - own branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - branch belongs to a different company",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"company_id\": 10,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									]
								},
								"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Company field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"branch_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									]
								},
								"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing required fields",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"0221234599\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Company)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"1122233355\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - updating another company's branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Contacts Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"contacts"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch contacts updated successfully.\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"branch_id\": 1,\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        },\n        {\n            \"id\": 2,\n            \"branch_id\": 1,\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The contacts field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Active Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deactivated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - deletable branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - deleting another company's branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - branch has scheduled visits (BR-12)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Branch cannot be deleted — it has scheduled visits.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										"bulk"
									]
								},
								"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "15. Categories & Services (Catalog)",
					"item": [
						{
							"name": "List All Categories (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 2,\n                \"name\": \"Plumbing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": null,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"parent\": null,\n                \"has_children\": false,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/categories?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/categories\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 8,\n                \"name\": \"Pipe Fixing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": 7,\n                \"parent\": {\n                    \"id\": 7,\n                    \"name\": \"Plumbing\"\n                },\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"price\": \"50.00\",\n                \"contract_price\": \"45.00\",\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/services?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/services\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Categories (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists top-level categories",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Categories retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 30,\n            \"name\": \"Plumbing\",\n            \"description\": \"Pipe and water repairs\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"visit_price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Category Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Electrical\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": null,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"parent\": null,\n        \"has_children\": false,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"children\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Electrical\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كهرباء\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Service Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"name\": \"Leak Detection\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": 7,\n        \"parent\": {\n            \"id\": 7,\n            \"name\": \"Plumbing\"\n        },\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Leak Detection\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كشف التسريبات\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									]
								},
								"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Name (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									]
								},
								"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Category field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Parent",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected parent must be a top-level category.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "Update Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "List Service Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories"
									]
								},
								"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories"
											]
										},
										"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"\\u0627\\u0644\\u0633\\u0628\\u0627\\u0643\\u0629\",\n            \"description\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0645\\u0648\\u0627\\u0633\\u064a\\u0631 \\u0648\\u0627\\u0644\\u0635\\u0631\\u0641 \\u0648\\u062a\\u0631\\u0643\\u064a\\u0628\\u0627\\u062a \\u0627\\u0644\\u0645\\u064a\\u0627\\u0647\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 6,\n            \"name\": \"\\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0621\",\n            \"description\": \"\\u0627\\u0644\\u0623\\u0633\\u0644\\u0627\\u0643 \\u0648\\u0627\\u0644\\u0645\\u0642\\u0627\\u0628\\u0633 \\u0648\\u0627\\u0644\\u0625\\u0635\\u0644\\u0627\\u062d\\u0627\\u062a \\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0626\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 11,\n            \"name\": \"\\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641 \\u0648\\u0627\\u0644\\u062a\\u0628\\u0631\\u064a\\u062f\",\n            \"description\": \"\\u062a\\u0631\\u0643\\u064a\\u0628 \\u0648\\u0635\\u064a\\u0627\\u0646\\u0629 \\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 3,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 16,\n            \"name\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 4,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 20,\n            \"name\": \"\\u0627\\u0644\\u062f\\u0647\\u0627\\u0646\\u0627\\u062a \\u0648\\u0627\\u0644\\u0646\\u062c\\u0627\\u0631\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0627\\u0644\\u062f\\u0647\\u0627\\u0646 \\u0648\\u0627\\u0644\\u0623\\u0639\\u0645\\u0627\\u0644 \\u0627\\u0644\\u062e\\u0634\\u0628\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 5,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        }\n    ]\n}\n"
								}
							]
						},
						{
							"name": "List Category Services (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list active services under a category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 27,\n            \"parent_id\": 26,\n            \"name\": \"Wiring Repair\",\n            \"description\": \"Fix wiring\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        },\n        {\n            \"id\": 28,\n            \"parent_id\": 26,\n            \"name\": \"Socket Installation\",\n            \"description\": \"Install sockets\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List Category Services (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - lists services under category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Category services retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 31,\n            \"parent_id\": 30,\n            \"name\": \"Pipe Leak Repair\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": \"150.00\",\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Category",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Service",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Categories)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										"bulk"
									]
								},
								"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Services)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										"bulk"
									]
								},
								"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "16. General Settings & Feature Flags",
					"item": [
						{
							"name": "List All Feature flags",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"feature_flags\": [\n            {\n                \"id\": 1,\n                \"key\": \"new_checkout_flow\",\n                \"is_enabled\": false,\n                \"targeting_rules\": {\n                    \"countries\": [\n                        \"SA\",\n                        \"AE\"\n                    ]\n                },\n                \"description\": \"Rolls out the redesigned checkout flow.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            },\n            {\n                \"id\": 2,\n                \"key\": \"wallet_top_up\",\n                \"is_enabled\": true,\n                \"targeting_rules\": null,\n                \"description\": \"Enables wallet top-up via gateway.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/feature-flags\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Settings",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list settings",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"My App\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - list settings after update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"Maintenance Platform\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@maintenance-platform.example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									]
								},
								"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"key\": \"sms_notifications\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"percentage\": 50\n        },\n        \"description\": \"Enables SMS notifications for order updates.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"new_checkout_flow\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"countries\": [\n                \"SA\",\n                \"AE\"\n            ]\n        },\n        \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Setting",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									]
								},
								"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `SettingService::update()` calls `AppConfig::updateOrCreate(['key' => ...], ['value' => ...])`, which never sets `group` — a non-nullable column with no default. Updating an EXISTING key works fine (only `value` changes), but submitting a brand-new key throws a database error, returned as a 500. See `app/Services/Admin/SettingService.php:52-57` and `database/migrations/2026_07_26_090606_create_app_configs_table.php:24`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - bulk update existing settings",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings updated successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing setting key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Each setting must have a key.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - settings not an array",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Settings must be provided as an array.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 500 Internal Server Error: 500 Internal Server Error - BUG: new key insert fails (group column has no default)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Internal Server Error",
									"code": 500,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"SQLSTATE[HY000]: General error: 1364 Field 'group' doesn't have a default value (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: maintenance_testing_ad_a, SQL: insert into `app_configs` (`key`, `value`, `updated_at`, `created_at`) values (brand_new_setting_key, some value, 2026-08-20 12:09:45, 2026-08-20 12:09:45))\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Feature flag",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Feature flag Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id",
										"toggle"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Feature flag toggled\",\n    \"data\": {\n        \"id\": 2,\n        \"key\": \"wallet_top_up\",\n        \"is_enabled\": false,\n        \"targeting_rules\": null,\n        \"description\": \"Enables wallet top-up via gateway.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										"bulk"
									]
								},
								"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "17. Search",
					"item": [
						{
							"name": "Search Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/search?search=pipe",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"search"
									],
									"query": [
										{
											"key": "search",
											"value": "pipe"
										}
									]
								},
								"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\nCase-insensitive substring search over active, bookable services (leaf `Category` rows with a price) by translated name/description. Not paginated — runs an unpaginated query and reads only `search` (or `query` as a fallback param name); does not accept `page`/`per_page`/`sort`/`paginate`/`filters[...]`.\n\n**Payload:**\nNo request body.\n\n**Query parameters:**\n- `search` — Search term, matched against translated service `name` and `description` (optional; `query` also works as a fallback param name)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"Search results retrieved successfully\", \"data\": [ { \"id\": 25, \"name\": \"...\", \"description\": \"...\", \"parent\": {...} } ] }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - search services by name/description",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 25,\n            \"parent_id\": 24,\n            \"name\": \"Pipe Repair Plumbing\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 24,\n                \"name\": \"Plumbing Category\"\n            },\n            \"created_at\": \"2026-08-20T10:51:46.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no matches found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "18. Health & Status",
					"item": [
						{
							"name": "Health Check",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/health",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"health"
									]
								},
								"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\nInfrastructure health probe — checks database, cache, queue, and storage connectivity/latency and reports overall `healthy`/`degraded` status. Not a resource endpoint (no pagination/filtering/search), and the response does not use the standard `{status, message, data}` envelope — `HealthController::index()` calls `response()->json()` directly rather than the `json()` helper. Intended for load balancers and uptime monitors.\n\n**Payload:**\nNo request body, no query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"healthy\", \"checks\": { \"database\": {...}, \"cache\": {...}, \"queue\": {...}, \"storage\": {...} }, \"version\": \"1.0.0\", \"timestamp\": \"...\" }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/health?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"health"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"healthy\",\n    \"checks\": {\n        \"database\": {\n            \"status\": \"up\",\n            \"latency_ms\": 0.38\n        },\n        \"cache\": {\n            \"status\": \"up\",\n            \"driver\": \"database\",\n            \"latency_ms\": 4.35\n        },\n        \"queue\": {\n            \"status\": \"up\",\n            \"driver\": \"database\"\n        },\n        \"storage\": {\n            \"status\": \"up\",\n            \"driver\": \"local\"\n        }\n    },\n    \"version\": \"1.0.0\",\n    \"timestamp\": \"2026-08-19T21:35:04.385732Z\"\n}"
								}
							]
						},
						{
							"name": "Bootstrap Config",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/config/bootstrap",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"config",
										"bootstrap"
									]
								},
								"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/config/bootstrap",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"config",
												"bootstrap"
											]
										},
										"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Bootstrap configuration retrieved\",\n    \"data\": {\n        \"app\": {\n            \"min_version\": \"1.0.0\",\n            \"force_update\": false,\n            \"maintenance\": {\n                \"enabled\": false,\n                \"message\": \"Service temporarily unavailable\",\n                \"platforms\": []\n            }\n        },\n        \"features\": {\n            \"enable_notifications\": false,\n            \"enable_wallet\": true,\n            \"enable_cod\": true,\n            \"enable_reviews\": false,\n            \"maintenance_mode\": false,\n            \"new_checkout_flow\": true\n        },\n        \"integrations\": [],\n        \"ui\": {\n            \"primary_color\": \"#1d4ed8\",\n            \"home_sections_order\": \"sliders,categories,featured,new_arrivals\"\n        },\n        \"limits\": {\n            \"min_order_amount\": \"50\",\n            \"max_cart_items\": \"20\",\n            \"free_shipping_threshold\": \"500\"\n        },\n        \"urls\": []\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "19. Content & Reference (FAQs, Pages, Sliders)",
					"item": [
						{
							"name": "List All Faqs (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"f_a_q_s\": [\n            {\n                \"id\": 1,\n                \"type\": \"General\",\n                \"question\": \"What is this?\",\n                \"answer\": \"A maintenance platform.\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/faqs?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/faqs\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Pages",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"static_pages\": [\n            {\n                \"id\": 1,\n                \"type\": \"About Us\",\n                \"title\": \"About Us\",\n                \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/pages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/pages\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Sliders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"sliders\": [\n            {\n                \"id\": 1,\n                \"title\": \"Sale\",\n                \"subtitle\": \"Big discounts\",\n                \"link\": \"https://example.com\",\n                \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/sliders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/sliders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this is the route that actually answers `GET /client/faqs` today — it requires authentication even though FAQs are public content. A second, intentionally-public route (`client.content.faqs`) is registered earlier at the identical URI but is currently shadowed and unreachable (same-path route collision). Until that's fixed, calling `/client/faqs` without a bearer token returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 2,\n            \"type\": \"General\",\n            \"question\": \"كيف أنشئ حساب؟\",\n            \"answer\": \"انقر على التسجيل واملأ بياناتك.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I add a branch?\",\n            \"answer\": \"Use the Branches endpoint to add a new branch to your company account.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I get paid?\",\n            \"answer\": \"Payouts are processed weekly to your wallet.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Faq Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Orders And Payment\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"updated_at\": \"2026-08-20 12:09:42\",\n        \"en\": {\n            \"question\": \"How do I pay?\",\n            \"answer\": \"Via wallet or gateway.\"\n        },\n        \"ar\": {\n            \"question\": \"كيف ادفع؟\",\n            \"answer\": \"عبر المحفظة أو البوابة.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Page Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Return Policy\",\n        \"title\": \"Terms\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"content\": \"Terms content.\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Terms\",\n            \"content\": \"Terms content.\"\n        },\n        \"ar\": {\n            \"title\": \"الشروط\",\n            \"content\": \"محتوى الشروط.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Slider Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\",\n        \"link\": \"https://example.com/promo\",\n        \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Promo\",\n            \"subtitle\": \"Limited time\"\n        },\n        \"ar\": {\n            \"title\": \"عرض\",\n            \"subtitle\": \"وقت محدود\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									]
								},
								"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Question (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									]
								},
								"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a type.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									]
								},
								"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Link must be a valid URL.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}"
								}
							]
						},
						{
							"name": "Page Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/pages/:type",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"pages",
										":type"
									],
									"variable": [
										{
											"key": "type",
											"value": "shipping_policy",
											"description": "Static page type/slug — see ContentController for the allowed values."
										}
									]
								},
								"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Page retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true,\n        \"type\": \"shipping_policy\",\n        \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"title\": \"سياسة الشحن\",\n        \"content\": \"التوصيل العادي يستغرق 3-5 أيام عمل.\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Sliders Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Sliders retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"link\": \"https://example.com/summer\",\n            \"sort_order\": 1,\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"title\": \"تخفيضات الصيف\",\n            \"subtitle\": \"خصم يصل الى 50%\"\n        }\n    ]\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this route sits inside the `auth:api + active` protected group in routes/api/v1/client.php, requiring a bearer token even though About Us content is meant to be public (same pattern as `client.content.page`, which IS public). Likely a route-placement bug worth fixing — flagged for the routes owner."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"About Us\",\n        \"title\": \"من نحن\",\n        \"content\": \"نقدم خدمة عالية الجودة.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — this is inside the protected group and requires a bearer token even though Privacy Policy content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"سياسة الخصوصية\",\n        \"content\": \"خصوصيتك مهمة لنا.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect maintenance companies with skilled technicians and clients.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your company data is handled according to our privacy policy.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect skilled technicians with customers.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your privacy is important to us.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Faq",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Page",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Slider",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (FAQs)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										"bulk"
									]
								},
								"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Invalid ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Static Pages)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										"bulk"
									]
								},
								"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Sliders)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										"bulk"
									]
								},
								"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "Company",
			"item": [
				{
					"name": "01. Authentication (Session)",
					"item": [
						{
							"name": "Logout",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"pm.collectionVariables.set(\"company_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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/auth/logout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"auth",
										"logout"
									]
								},
								"description": "**Route:** `company.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid token",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `company.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Logged out successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `company.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "02. Company Profile",
					"item": [
						{
							"name": "Update 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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"legal_name\": \"Profile Updated Co\",\n    \"tax_number\": \"VAT-999\",\n    \"commercial_registration_no\": \"CR-999\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile"
									]
								},
								"description": "**Route:** `company.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register`\n- **Description:** Commercial Register File\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Profile Updated Co\",\n    \"tax_number\": \"VAT-999\",\n    \"commercial_registration_no\": \"CR-999\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile"
											]
										},
										"description": "**Route:** `company.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register`\n- **Description:** Commercial Register File\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile updated successfully\",\n    \"data\": {\n        \"id\": 120,\n        \"name\": \"Profile Updated Co\",\n        \"email\": \"profile.update.co@example.com\",\n        \"phone\": \"1144433323\",\n        \"user_type\": \"company\",\n        \"user_type_label\": \"Company\",\n        \"status\": \"active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T11:20:49.000000Z\",\n        \"legal_name\": \"Profile Updated Co\",\n        \"tax_number\": \"VAT-999\",\n        \"commercial_registration_no\": \"CR-999\",\n        \"account_owner_phone\": null,\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null,\n            \"warning\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid expiry date",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Profile Updated Co\",\n    \"tax_number\": \"VAT-999\",\n    \"commercial_registration_no\": \"CR-999\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile"
											]
										},
										"description": "**Route:** `company.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register`\n- **Description:** Commercial Register File\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Commercial Register Expiry Date is not a valid date.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Email Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"new_email\": \"profile.new-email.co@example.com\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile/change-email",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile",
										"change-email"
									]
								},
								"description": "**Route:** `company.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - available new email",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_email\": \"profile.new-email.co@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-email",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-email"
											]
										},
										"description": "**Route:** `company.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification code has been sent to the new email.\",\n    \"data\": {\n        \"verification_token\": \"57efd96c-f316-4273-91b4-91617df8d7ea\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - email already taken",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_email\": \"profile.new-email.co@example.com\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-email",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-email"
											]
										},
										"description": "**Route:** `company.profile.change-email`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_email`\n- **Description:** New Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,\"1\",id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,\"1\",id` — must be unique (users, email, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The New Email has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Password Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile/change-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile",
										"change-password"
									]
								},
								"description": "**Route:** `company.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - correct current password",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `company.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password changed successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - wrong current password",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `company.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The current password is incorrect.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - password too short",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"password\",\n    \"password\": \"brandnewpass123\",\n    \"password_confirmation\": \"brandnewpass123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `company.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Password must be at least 8 characters.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Phone Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"new_phone\": \"1144433398\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile/change-phone",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile",
										"change-phone"
									]
								},
								"description": "**Route:** `company.profile.change-phone`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_phone`\n- **Description:** New Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,\"1\",id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - available new phone",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_phone\": \"1144433398\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-phone",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-phone"
											]
										},
										"description": "**Route:** `company.profile.change-phone`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_phone`\n- **Description:** New Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,\"1\",id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"A verification code has been sent to the new phone number.\",\n    \"data\": {\n        \"verification_token\": \"d17f158d-1751-4244-b571-022757fc9d8c\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - phone already taken",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"new_phone\": \"1144433398\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/change-phone",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"change-phone"
											]
										},
										"description": "**Route:** `company.profile.change-phone`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `new_phone`\n- **Description:** New Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,\"1\",id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,\"1\",id` — must be unique (users, phone, \"1\", id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The New Phone has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Email Change Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"token\": \"57efd96c-f316-4273-91b4-91617df8d7ea\",\n    \"code\": \"123456\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile/verify-email-change",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile",
										"verify-email-change"
									]
								},
								"description": "**Route:** `company.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"57efd96c-f316-4273-91b4-91617df8d7ea\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/verify-email-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"verify-email-change"
											]
										},
										"description": "**Route:** `company.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Email changed successfully.\",\n    \"data\": {\n        \"id\": 125,\n        \"name\": \"Shanna Altenwerth\",\n        \"email\": \"profile.new-email.co@example.com\",\n        \"phone\": \"1144433329\",\n        \"user_type\": \"company\",\n        \"user_type_label\": \"Company\",\n        \"status\": \"active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T11:20:49.000000Z\",\n        \"legal_name\": \"Shanna Altenwerth\",\n        \"tax_number\": null,\n        \"commercial_registration_no\": null,\n        \"account_owner_phone\": null,\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null,\n            \"warning\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid token",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"57efd96c-f316-4273-91b4-91617df8d7ea\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/verify-email-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"verify-email-change"
											]
										},
										"description": "**Route:** `company.profile.verify-email-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Expired or invalid verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Verify Phone Change Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"token\": \"d17f158d-1751-4244-b571-022757fc9d8c\",\n    \"code\": \"123456\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile/verify-phone-change",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile",
										"verify-phone-change"
									]
								},
								"description": "**Route:** `company.profile.verify-phone-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"d17f158d-1751-4244-b571-022757fc9d8c\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/verify-phone-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"verify-phone-change"
											]
										},
										"description": "**Route:** `company.profile.verify-phone-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Phone number changed successfully.\",\n    \"data\": {\n        \"id\": 129,\n        \"name\": \"Mrs. Ashly Brekke\",\n        \"email\": \"change.phone.co@example.com\",\n        \"phone\": \"1144433398\",\n        \"user_type\": \"company\",\n        \"user_type_label\": \"Company\",\n        \"status\": \"active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": true,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T11:20:50.000000Z\",\n        \"legal_name\": \"Mrs. Ashly Brekke\",\n        \"tax_number\": null,\n        \"commercial_registration_no\": null,\n        \"account_owner_phone\": \"1144433398\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null,\n            \"warning\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - invalid token",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"token\": \"d17f158d-1751-4244-b571-022757fc9d8c\",\n    \"code\": \"123456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile/verify-phone-change",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile",
												"verify-phone-change"
											]
										},
										"description": "**Route:** `company.profile.verify-phone-change`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `token`\n- **Description:** Token\n- **Type:** `string`\n- **Required:** required\n- **Example:** `<verification-token-from-previous-response>`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `code`\n- **Description:** Verification Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123456`\n- **Validation rules:** `required|string|size:6`\n- `required` — must be provided.\n- `string` — must be text.\n- `size:6` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Expired or invalid verification code.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Profile Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"profile"
									]
								},
								"description": "**Route:** `company.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile"
											]
										},
										"description": "**Route:** `company.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile retrieved successfully\",\n    \"data\": {\n        \"id\": 119,\n        \"name\": \"Profile Original Co\",\n        \"email\": \"profile.co@example.com\",\n        \"phone\": \"1144433322\",\n        \"user_type\": \"company\",\n        \"user_type_label\": \"Company\",\n        \"status\": \"active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T11:20:49.000000Z\",\n        \"legal_name\": \"Profile Original Co\",\n        \"tax_number\": null,\n        \"commercial_registration_no\": null,\n        \"account_owner_phone\": null,\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null,\n            \"warning\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"profile"
											]
										},
										"description": "**Route:** `company.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03. Contracts",
					"item": [
						{
							"name": "List All Contracts",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contracts retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"contract_number\": \"CTR-2026-000001\",\n                \"status\": \"pending_signature\",\n                \"status_label\": \"Pending Signature\",\n                \"visits_allowed\": 10,\n                \"remaining_visits\": 10,\n                \"services\": [],\n                \"created_at\": \"2026-08-20T11:20:50+00:00\"\n            },\n            {\n                \"id\": 2,\n                \"contract_number\": \"CTR-2026-000002\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"visits_allowed\": 10,\n                \"remaining_visits\": 10,\n                \"services\": [],\n                \"created_at\": \"2026-08-20T11:20:50+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/contracts?page=1\",\n            \"last\": \"http://localhost/api/v1/company/contracts?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/contracts?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/contracts\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Contract Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts/:contract",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts",
										":contract"
									],
									"variable": [
										{
											"key": "contract",
											"value": "{{contract_id}}",
											"description": "Contract ID"
										}
									]
								},
								"description": "**Route:** `company.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "3",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract retrieved successfully.\",\n    \"data\": {\n        \"id\": 3,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_signature\",\n        \"status_label\": \"Pending Signature\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"notes\": null,\n        \"terminated_reason\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"branch_services\": [],\n        \"visits\": {\n            \"allowed\": 10,\n            \"consumed\": 0,\n            \"remaining\": 10\n        },\n        \"reports\": {\n            \"completion_rate\": 0,\n            \"remaining_visits\": 10,\n            \"completed_visits\": 0\n        },\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T11:20:50+00:00\",\n        \"updated_at\": \"2026-08-20T11:20:50+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "3",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "3",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Contract",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"contract_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"billing_cycle\": \"monthly\",\n    \"currency\": \"SAR\",\n    \"notes\": \"Initial contract\",\n    \"branches\": [\n        {\n            \"branch_id\": 1,\n            \"service_ids\": [\n                2\n            ],\n            \"visits_allowed\": 5\n        }\n    ],\n    \"signed_media_id\": 2\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts"
									]
								},
								"description": "**Route:** `company.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after_or_equal:today`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after:start_date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `branches`\n- **Description:** Branches\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"branch_id\":1,\"service_ids\":[1],\"visits_allowed\":1}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.branch_id`\n- **Description:** Branches item branch id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:branches,id,company_id,\"1\"`\n- `required` — must be provided.\n- `exists:branches,id,company_id,\"1\"` — must reference an existing record (branches, id, company_id, \"1\").\n### `branches.*.service_ids`\n- **Description:** Branches item service ids\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[1]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.service_ids.*`\n- **Description:** Branches item service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branches.*.visits_allowed`\n- **Description:** Branches item visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - contract created (company_price used: 80 x 5 = 400)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"billing_cycle\": \"monthly\",\n    \"currency\": \"SAR\",\n    \"notes\": \"Initial contract\",\n    \"branches\": [\n        {\n            \"branch_id\": 6,\n            \"service_ids\": [\n                32\n            ],\n            \"visits_allowed\": 5\n        }\n    ],\n    \"signed_media_id\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											]
										},
										"description": "**Route:** `company.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after_or_equal:today`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after:start_date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `branches`\n- **Description:** Branches\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"branch_id\":1,\"service_ids\":[1],\"visits_allowed\":1}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.branch_id`\n- **Description:** Branches item branch id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:branches,id,company_id,\"1\"`\n- `required` — must be provided.\n- `exists:branches,id,company_id,\"1\"` — must reference an existing record (branches, id, company_id, \"1\").\n### `branches.*.service_ids`\n- **Description:** Branches item service ids\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[1]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.service_ids.*`\n- **Description:** Branches item service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branches.*.visits_allowed`\n- **Description:** Branches item visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract created successfully.\",\n    \"data\": {\n        \"id\": 5,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 5,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 5,\n        \"total_amount\": \"400.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_approval\",\n        \"status_label\": \"Processing\",\n        \"auto_renew\": null,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": \"/storage/uploads/default/RiJQAQsKksYBUngiI6KAIZ0iRbAiqtuC9JCDQVTD.pdf\",\n        \"signed_at\": \"2026-08-20T11:20:50+00:00\",\n        \"notes\": \"Initial contract\",\n        \"terminated_reason\": null,\n        \"branches\": [\n            {\n                \"id\": 6,\n                \"name\": \"Main Branch\",\n                \"address_text\": \"50749 Price Causeway Apt. 364\"\n            }\n        ],\n        \"services\": [\n            {\n                \"id\": 32,\n                \"name\": \"AC Repair\"\n            }\n        ],\n        \"branch_services\": [\n            {\n                \"branch_id\": 6,\n                \"branch_name\": \"Main Branch\",\n                \"address_text\": \"50749 Price Causeway Apt. 364\",\n                \"visits_allowed\": 5,\n                \"services\": [\n                    {\n                        \"id\": 32,\n                        \"name\": \"AC Repair\"\n                    }\n                ]\n            }\n        ],\n        \"visits\": {\n            \"allowed\": 5,\n            \"consumed\": 0,\n            \"remaining\": 5\n        },\n        \"reports\": {\n            \"completion_rate\": 0,\n            \"remaining_visits\": 5,\n            \"completed_visits\": 0\n        },\n        \"signatures\": [\n            {\n                \"id\": 1,\n                \"signer_type\": \"company\",\n                \"signed_at\": \"2026-08-20T11:20:50+00:00\"\n            }\n        ],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T11:20:50+00:00\",\n        \"updated_at\": \"2026-08-20T11:20:50+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (missing branches, bad billing_cycle)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"billing_cycle\": \"monthly\",\n    \"currency\": \"SAR\",\n    \"notes\": \"Initial contract\",\n    \"branches\": [\n        {\n            \"branch_id\": 6,\n            \"service_ids\": [\n                32\n            ],\n            \"visits_allowed\": 5\n        }\n    ],\n    \"signed_media_id\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											]
										},
										"description": "**Route:** `company.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after_or_equal:today`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after:start_date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `branches`\n- **Description:** Branches\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"branch_id\":1,\"service_ids\":[1],\"visits_allowed\":1}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.branch_id`\n- **Description:** Branches item branch id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:branches,id,company_id,\"1\"`\n- `required` — must be provided.\n- `exists:branches,id,company_id,\"1\"` — must reference an existing record (branches, id, company_id, \"1\").\n### `branches.*.service_ids`\n- **Description:** Branches item service ids\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[1]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.service_ids.*`\n- **Description:** Branches item service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branches.*.visits_allowed`\n- **Description:** Branches item visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected billing cycle is invalid. (and 2 more errors)\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - branch_id belongs to another company (Rule::exists scoped by company_id)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"billing_cycle\": \"monthly\",\n    \"currency\": \"SAR\",\n    \"notes\": \"Initial contract\",\n    \"branches\": [\n        {\n            \"branch_id\": 6,\n            \"service_ids\": [\n                32\n            ],\n            \"visits_allowed\": 5\n        }\n    ],\n    \"signed_media_id\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											]
										},
										"description": "**Route:** `company.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after_or_equal:today`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after:start_date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `branches`\n- **Description:** Branches\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"branch_id\":1,\"service_ids\":[1],\"visits_allowed\":1}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.branch_id`\n- **Description:** Branches item branch id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:branches,id,company_id,\"1\"`\n- `required` — must be provided.\n- `exists:branches,id,company_id,\"1\"` — must reference an existing record (branches, id, company_id, \"1\").\n### `branches.*.service_ids`\n- **Description:** Branches item service ids\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[1]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.service_ids.*`\n- **Description:** Branches item service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branches.*.visits_allowed`\n- **Description:** Branches item visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected branches.0.branch_id is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"billing_cycle\": \"monthly\",\n    \"currency\": \"SAR\",\n    \"notes\": \"Initial contract\",\n    \"branches\": [\n        {\n            \"branch_id\": 6,\n            \"service_ids\": [\n                32\n            ],\n            \"visits_allowed\": 5\n        }\n    ],\n    \"signed_media_id\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts"
											]
										},
										"description": "**Route:** `company.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after_or_equal:today`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `nullable|date|after:start_date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `branches`\n- **Description:** Branches\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"branch_id\":1,\"service_ids\":[1],\"visits_allowed\":1}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.branch_id`\n- **Description:** Branches item branch id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:branches,id,company_id,\"1\"`\n- `required` — must be provided.\n- `exists:branches,id,company_id,\"1\"` — must reference an existing record (branches, id, company_id, \"1\").\n### `branches.*.service_ids`\n- **Description:** Branches item service ids\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[1]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branches.*.service_ids.*`\n- **Description:** Branches item service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branches.*.visits_allowed`\n- **Description:** Branches item visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Renew Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"note\": \"Please renew for another year\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts/:id/renew",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts",
										":id",
										"renew"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{contract_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.contracts.renew`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - renewal requested",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"Please renew for another year\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/renew",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"renew"
											],
											"variable": [
												{
													"key": "id",
													"value": "11",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.renew`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Renewal request submitted successfully.\",\n    \"data\": {\n        \"id\": 11,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_renewal\",\n        \"status_label\": \"Pending Renewal\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"notes\": null,\n        \"terminated_reason\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"branch_services\": [],\n        \"visits\": {\n            \"allowed\": 10,\n            \"consumed\": 0,\n            \"remaining\": 10\n        },\n        \"reports\": {\n            \"completion_rate\": 0,\n            \"remaining_visits\": 10,\n            \"completed_visits\": 0\n        },\n        \"signatures\": [],\n        \"renewal_requests\": [\n            {\n                \"id\": 1,\n                \"status\": \"pending\",\n                \"note\": \"Please renew for another year\",\n                \"created_at\": \"2026-08-20T11:20:50+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-08-20T11:20:50+00:00\",\n        \"updated_at\": \"2026-08-20T11:20:50+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - draft contract cannot be renewed (only active/expired)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"Please renew for another year\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/renew",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"renew"
											],
											"variable": [
												{
													"key": "id",
													"value": "11",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.renew`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be renewed in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - a renewal request is already pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"Please renew for another year\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/renew",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"renew"
											],
											"variable": [
												{
													"key": "id",
													"value": "11",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.renew`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"A renewal request is already pending.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Sign Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"signed_media_id\": 2\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts/:id/sign",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts",
										":id",
										"sign"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{contract_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.contracts.sign`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid signature",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"signed_media_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/sign",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"sign"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.sign`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract signed successfully.\",\n    \"data\": {\n        \"id\": 8,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_approval\",\n        \"status_label\": \"Processing\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": \"/storage/uploads/default/dYwFabxesmeaWiWFoIszKoKJRorPkkSl3ztluMUM.pdf\",\n        \"signed_at\": \"2026-08-20T11:20:50+00:00\",\n        \"notes\": null,\n        \"terminated_reason\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"branch_services\": [],\n        \"visits\": {\n            \"allowed\": 10,\n            \"consumed\": 0,\n            \"remaining\": 10\n        },\n        \"reports\": {\n            \"completion_rate\": 0,\n            \"remaining_visits\": 10,\n            \"completed_visits\": 0\n        },\n        \"signatures\": [\n            {\n                \"id\": 2,\n                \"signer_type\": \"company\",\n                \"signed_at\": \"2026-08-20T11:20:50+00:00\"\n            }\n        ],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T11:20:50+00:00\",\n        \"updated_at\": \"2026-08-20T11:20:50+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - already signed / active contract cannot be re-signed",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"signed_media_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/sign",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"sign"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.sign`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected signed media id is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (signed_media_id required)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"signed_media_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/sign",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"sign"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.sign`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The signed media id field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"signed_media_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/sign",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"sign"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.sign`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `signed_media_id`\n- **Description:** Signed media id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:media,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Template Contract",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts/:id/template",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts",
										":id",
										"template"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{contract_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.contracts.template`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 404 Not Found: 404 - no contract template configured",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/template",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"template"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.template`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract template not configured.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - template media returned",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/template",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"template"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.template`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Template retrieved successfully.\",\n    \"data\": {\n        \"media_id\": 7,\n        \"url\": \"/storage/uploads/default/L8kCsmPWWEzidd0tBNjxzSvPD96JBeaitgLQQaFi.pdf\",\n        \"name\": \"signed.pdf\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:id/template",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":id",
												"template"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.template`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Contract",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/contracts/:contract",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"contracts",
										":contract"
									],
									"variable": [
										{
											"key": "contract",
											"value": "{{contract_id}}",
											"description": "Contract ID"
										}
									]
								},
								"description": "**Route:** `company.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - draft contract deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - active contract cannot be deleted (canBeDeleted() only allows draft/pending_signature)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be deleted in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `company.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03b. Categories & Services",
					"item": [
						{
							"name": "List All Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists top-level categories",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Categories retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 30,\n            \"name\": \"Plumbing\",\n            \"description\": \"Pipe and water repairs\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"visit_price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List Category Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - lists services under category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Category services retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 31,\n            \"parent_id\": 30,\n            \"name\": \"Pipe Leak Repair\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": \"150.00\",\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Orders & Jobs — Creating",
					"item": [
						{
							"name": "Show Cart Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart"
									]
								},
								"description": "**Route:** `company.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - empty cart",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart"
											]
										},
										"description": "**Route:** `company.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart retrieved\",\n    \"data\": {\n        \"id\": null,\n        \"items_count\": 0,\n        \"subtotal\": 0\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart"
											]
										},
										"description": "**Route:** `company.cart.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Custom request",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.uuid !== undefined && response.data.uuid !== null) {",
											"    pm.collectionVariables.set(\"order_id\", response.data.uuid);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Need a quote for HVAC overhaul across the branch\",\n    \"address_id\": 1,\n    \"branch_id\": 1\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart/custom-requests",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart",
										"custom-requests"
									]
								},
								"description": "**Route:** `company.cart.custom-requests.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - custom request with branch_id, order_source=job_order",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Need a quote for HVAC overhaul across the branch\",\n    \"address_id\": 34,\n    \"branch_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/custom-requests",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"custom-requests"
											]
										},
										"description": "**Route:** `company.cart.custom-requests.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Custom request submitted\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-STUQ\",\n        \"customer_id\": 175,\n        \"order_source\": \"job_order\",\n        \"branch_id\": 8,\n        \"booking_type\": \"instant\",\n        \"address_id\": 34,\n        \"status\": \"waiting_price\",\n        \"subtotal_amount\": \"0.00\",\n        \"vat_amount\": \"0.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"0.00\",\n        \"paid_amount\": \"0.00\",\n        \"uuid\": \"f4e5adf0-3c3d-475d-83c3-2870d26498e9\",\n        \"updated_at\": \"2026-08-20T11:20:51.000000Z\",\n        \"created_at\": \"2026-08-20T11:20:51.000000Z\",\n        \"id\": 34,\n        \"items\": [\n            {\n                \"id\": 30,\n                \"order_id\": \"f4e5adf0-3c3d-475d-83c3-2870d26498e9\",\n                \"category_id\": null,\n                \"service_name\": \"Custom request\",\n                \"pricing_type\": \"quote\",\n                \"unit_price\": \"0.00\",\n                \"quantity\": 1,\n                \"line_total\": \"0.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": \"Need a quote for HVAC overhaul across the branch\",\n                \"created_at\": \"2026-08-20T11:20:51.000000Z\",\n                \"updated_at\": \"2026-08-20T11:20:51.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - branch_id required for Company (validated separately by Company\\CartController)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Need a quote for HVAC overhaul across the branch\",\n    \"address_id\": 34,\n    \"branch_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/custom-requests",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"custom-requests"
											]
										},
										"description": "**Route:** `company.cart.custom-requests.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Branch field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - branch_id belongs to another company",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Need a quote for HVAC overhaul across the branch\",\n    \"address_id\": 34,\n    \"branch_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/custom-requests",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"custom-requests"
											]
										},
										"description": "**Route:** `company.cart.custom-requests.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected Branch is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Need a quote for HVAC overhaul across the branch\",\n    \"address_id\": 34,\n    \"branch_id\": 8\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/custom-requests",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"custom-requests"
											]
										},
										"description": "**Route:** `company.cart.custom-requests.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `nullable|exists:categories,id`\n- `nullable` — may be null.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n### `request_media`\n- **Description:** Attachment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id`\n- `required` — must be provided.\n- `exists:addresses,id` — must reference an existing record (addresses, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Item",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"quantity\": 4\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart/items/:itemId",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart",
										"items",
										":itemId"
									],
									"variable": [
										{
											"key": "itemId",
											"value": "{{cart_item_id}}",
											"description": "ItemId ID"
										}
									]
								},
								"description": "**Route:** `company.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - quantity updated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"quantity\": 4\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "22",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `company.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart updated\",\n    \"data\": {\n        \"id\": 22,\n        \"items_count\": 4,\n        \"subtotal\": 320,\n        \"items\": [\n            {\n                \"id\": 19,\n                \"quantity\": 4,\n                \"unit_price\": \"80.00\",\n                \"line_total\": 320,\n                \"service\": {\n                    \"id\": 36,\n                    \"name\": \"AC Repair\",\n                    \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\"\n                },\n                \"created_at\": \"2026-08-20T11:20:51.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - item does not exist",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"quantity\": 4\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "22",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `company.cart.items.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:100`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Checkout Cart",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.uuid !== undefined && response.data.uuid !== null) {",
											"    pm.collectionVariables.set(\"order_id\", response.data.uuid);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Idempotency-Key",
										"value": "wallet-checkout-19"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 1,\n    \"branch_id\": 1\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart/checkout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart",
										"checkout"
									]
								},
								"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - wallet payment, order_source=job_order, branch_id set",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 37,\n    \"branch_id\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order placed successfully\",\n    \"data\": {\n        \"order_number\": \"ORD-260820-LJYB\",\n        \"customer_id\": 179,\n        \"order_source\": \"job_order\",\n        \"branch_id\": 10,\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": null,\n        \"address_id\": 37,\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"160.00\",\n        \"vat_amount\": \"24.00\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"184.00\",\n        \"paid_amount\": \"184.00\",\n        \"uuid\": \"47aa979b-0794-4bcd-929a-dfcce6b2fbf5\",\n        \"updated_at\": \"2026-08-20T11:20:51.000000Z\",\n        \"created_at\": \"2026-08-20T11:20:51.000000Z\",\n        \"id\": 35,\n        \"items\": [\n            {\n                \"id\": 31,\n                \"order_id\": \"47aa979b-0794-4bcd-929a-dfcce6b2fbf5\",\n                \"category_id\": 38,\n                \"service_name\": \"AC Repair\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"80.00\",\n                \"quantity\": 2,\n                \"line_total\": \"160.00\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": null,\n                \"created_at\": \"2026-08-20T11:20:51.000000Z\",\n                \"updated_at\": \"2026-08-20T11:20:51.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - branch_id required for Company checkout",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 37,\n    \"branch_id\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Branch field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - empty cart",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 37,\n    \"branch_id\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"Your cart is empty\",\n    \"data\": {\n        \"error_code\": \"BUSINESS_RULE_VIOLATED\",\n        \"correlation_id\": \"fda27705-18ff-48c0-bba2-6cbf91020d90\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - BUG (shared with Client): wallet (105.00) covers cart subtotal (100.00) but not VAT-inclusive total (115.00); CheckoutRequest validates against subtotal only, CheckoutCommandService rejects one layer deep",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 37,\n    \"branch_id\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance (105.00 SAR) is less than the order total (115.00 SAR). Wallet cannot be used for partial payment.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Idempotency-Key",
												"value": "wallet-checkout-19"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\",\n    \"booking_type\": \"instant\",\n    \"address_id\": 37,\n    \"branch_id\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/checkout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"checkout"
											]
										},
										"description": "**Route:** `company.cart.checkout`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context, idempotency`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `payment_method`\n- **Description:** Payment Method\n- **Type:** `string`\n- **Required:** required\n- **Example:** `gateway`\n- **Validation rules:** `required|in:\"gateway\",\"wallet\"|custom:WalletCoversCartRule`\n- `required` — must be provided.\n- `in:\"gateway\",\"wallet\"` — must be one of: \"gateway\", \"wallet\".\n- `custom:WalletCoversCartRule` — custom validation rule.\n### `booking_type`\n- **Description:** Booking Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `instant`\n- **Validation rules:** `required|in:\"instant\",\"scheduled\"`\n- `required` — must be provided.\n- `in:\"instant\",\"scheduled\"` — must be one of: \"instant\", \"scheduled\".\n### `address_id`\n- **Description:** Address\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:addresses,id,user_id,\"1\"`\n- `required` — must be provided.\n- `exists:addresses,id,user_id,\"1\"` — must reference an existing record (addresses, id, user_id, \"1\").\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `2026-08-21`\n- **Validation rules:** `required_if:booking_type,scheduled|date|after_or_equal:today`\n- `required_if:booking_type,scheduled` — required when booking_type, scheduled.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, money math):** `CheckoutRequest`'s wallet-coverage rule validates against the cart's **subtotal only**, while `CheckoutCommandService::checkoutWithWallet()` correctly re-validates against the VAT-inclusive total one layer deeper. A wallet that covers subtotal but not subtotal+VAT passes this endpoint's own validation and only fails inside the service. Company's `CartController` delegates to the same `CheckoutCommandService` as Client (only adding a `branch_id` check beforehand), so this is identical, not independently derived. See `CheckoutRequest.php:25-30` vs `CheckoutCommandService.php:140-142`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Clear Cart",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart"
									]
								},
								"description": "**Route:** `company.cart.clear`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - cart cleared",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart"
											]
										},
										"description": "**Route:** `company.cart.clear`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Cart cleared\",\n    \"data\": {\n        \"id\": 20,\n        \"items_count\": 0,\n        \"subtotal\": 0,\n        \"items\": []\n    }\n}"
								}
							]
						},
						{
							"name": "Add Item",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"cart_item_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"category_id\": 2,\n    \"quantity\": 2\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart/items",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart",
										"items"
									]
								},
								"description": "**Route:** `company.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - item added, company priced at contract_price (80.00)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 35,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `company.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item added to cart\",\n    \"data\": {\n        \"id\": 21,\n        \"items_count\": 2,\n        \"subtotal\": 160,\n        \"items\": [\n            {\n                \"id\": 18,\n                \"quantity\": 2,\n                \"unit_price\": \"80.00\",\n                \"line_total\": 160,\n                \"service\": {\n                    \"id\": 35,\n                    \"name\": \"AC Repair\",\n                    \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\"\n                },\n                \"created_at\": \"2026-08-20T11:20:51.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - category does not exist",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"category_id\": 35,\n    \"quantity\": 2\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/items",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"items"
											]
										},
										"description": "**Route:** `company.cart.items.add`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `category_id`\n- **Description:** Service\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,is_active,\"1\",price,\"NOT_NULL\"` — must reference an existing record (categories, id, is_active, \"1\", price, \"NOT_NULL\").\n### `quantity`\n- **Description:** Quantity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:100`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:100` — must not exceed 100.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected category does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Remove Item",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/cart/items/:itemId",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"cart",
										"items",
										":itemId"
									],
									"variable": [
										{
											"key": "itemId",
											"value": "{{cart_item_id}}",
											"description": "ItemId ID"
										}
									]
								},
								"description": "**Route:** `company.cart.items.remove`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - item removed",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/cart/items/:itemId",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"cart",
												"items",
												":itemId"
											],
											"variable": [
												{
													"key": "itemId",
													"value": "24",
													"description": "ItemId ID"
												}
											]
										},
										"description": "**Route:** `company.cart.items.remove`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Item removed from cart\",\n    \"data\": {\n        \"id\": 24,\n        \"items_count\": 0,\n        \"subtotal\": 0,\n        \"items\": []\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Orders & Jobs — Lifecycle",
					"item": [
						{
							"name": "List All Orders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - job orders only",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Orders retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 36,\n                \"uuid\": \"64b8becf-45bb-4925-a7c5-b10bb0608a29\",\n                \"order_number\": \"ORD-260820-BDAD\",\n                \"status\": \"pending\",\n                \"scheduled_date\": null,\n                \"total_amount\": \"82.58\",\n                \"items\": [\n                    {\n                        \"id\": 32,\n                        \"service_name\": \"molestias ea necessitatibus\",\n                        \"pricing_type\": \"fixed\",\n                        \"unit_price\": \"169.55\",\n                        \"quantity\": 1,\n                        \"line_total\": \"169.55\",\n                        \"is_quoted\": false,\n                        \"request_description\": null,\n                        \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20T11:20:51+00:00\"\n            },\n            {\n                \"id\": 37,\n                \"uuid\": \"6ed00cfa-db8a-45cd-be3d-894fe529ac82\",\n                \"order_number\": \"ORD-260820-TKVN\",\n                \"status\": \"confirmed\",\n                \"scheduled_date\": null,\n                \"total_amount\": \"551.54\",\n                \"items\": [\n                    {\n                        \"id\": 33,\n                        \"service_name\": \"ea et natus\",\n                        \"pricing_type\": \"fixed\",\n                        \"unit_price\": \"213.77\",\n                        \"quantity\": 2,\n                        \"line_total\": \"427.54\",\n                        \"is_quoted\": false,\n                        \"request_description\": null,\n                        \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20T11:20:51+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/company/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/orders\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Order Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders/:order",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders",
										":order"
									],
									"variable": [
										{
											"key": "order",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `company.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "b27c8219-c713-4492-89f4-d15351504335",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order retrieved successfully.\",\n    \"data\": {\n        \"id\": 38,\n        \"uuid\": \"b27c8219-c713-4492-89f4-d15351504335\",\n        \"order_number\": \"ORD-260820-DEID\",\n        \"status\": \"pending\",\n        \"scheduled_date\": \"2026-08-24\",\n        \"subtotal_amount\": \"72.48\",\n        \"vat_amount\": \"10.87\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"83.35\",\n        \"paid_amount\": \"83.35\",\n        \"address\": {\n            \"id\": 42,\n            \"title\": \"HQ\"\n        },\n        \"technician\": null,\n        \"items\": [\n            {\n                \"id\": 34,\n                \"service_name\": \"nisi et saepe\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"235.11\",\n                \"quantity\": 1,\n                \"line_total\": \"235.11\",\n                \"is_quoted\": false,\n                \"request_description\": null,\n                \"request_media_url\": \"https://ui-avatars.com/api/?name=N&background=f3f4f6&color=9ca3af&size=200\"\n            }\n        ],\n        \"status_history\": [\n            {\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"created_at\": \"2026-08-20T11:20:51+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:51+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "b27c8219-c713-4492-89f4-d15351504335",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "b27c8219-c713-4492-89f4-d15351504335",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Accept Price Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"payment_method\": \"wallet\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders",
										":id",
										"accept-price"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - wallet",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Price accepted, your order is now being processed.\",\n    \"data\": {\n        \"id\": 40,\n        \"uuid\": \"73fa3c8c-edd2-4b72-8aa4-786d7be59ce7\",\n        \"order_number\": \"ORD-260820-DTLE\",\n        \"status\": \"pending\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"443.97\",\n        \"vat_amount\": \"66.60\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"100.00\",\n        \"paid_amount\": \"100.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:51+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Wrong Status",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Insufficient wallet balance\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Insufficient Wallet Balance - caught downstream in OrderCommandService, NOT by AcceptPriceRequest (shared bug, see report)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance (5.00 SAR) is less than the order total (1,000.00 SAR). Wallet cannot be used for partial payment.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing payment_method",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Payment Method field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"payment_method\": \"wallet\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/accept-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"accept-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "73fa3c8c-edd2-4b72-8aa4-786d7be59ce7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.accept-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client):** `AcceptPriceRequest`'s wallet-coverage check looks up the order by `where('id', $this->route('id'))`, but the route segment is the order's **uuid**. The lookup always misses, the computed total silently falls back to 0, and this request-level wallet check becomes dead code — every `payment_method=wallet` request passes it regardless of balance. Insufficient balance is still caught correctly one layer deeper in `OrderCommandService::payWithWallet()`, so no bad payment goes through — it just surfaces as a generic validation exception instead of a clean 422 from this endpoint's own rules. Company's `OrderController` delegates to the exact same `Client\\Commands\\OrderCommandService`, so this is identical, not independently derived. See `app/Http/Requests/Client/Order/AcceptPriceRequest.php:28`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Cancel Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders",
										":id",
										"cancel"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - job_order cancelled; RefundService blocks the refund because order_source != 'individual' (Company job-orders are billed to the company, not a customer wallet) — cancel still succeeds with 200, no wallet credit",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "e09fbaf9-f84f-47ef-9532-0fff594cc24b",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order cancelled successfully.\",\n    \"data\": {\n        \"id\": 50,\n        \"uuid\": \"e09fbaf9-f84f-47ef-9532-0fff594cc24b\",\n        \"order_number\": \"ORD-260820-KMTS\",\n        \"status\": \"cancelled\",\n        \"scheduled_date\": \"2026-08-24\",\n        \"subtotal_amount\": \"459.20\",\n        \"vat_amount\": \"68.88\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"100.00\",\n        \"paid_amount\": \"100.00\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:52+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - technician has started the work (status=start), cannot self-cancel",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "e09fbaf9-f84f-47ef-9532-0fff594cc24b",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order can no longer be cancelled.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - reason is required",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "e09fbaf9-f84f-47ef-9532-0fff594cc24b",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Cancellation Reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "e09fbaf9-f84f-47ef-9532-0fff594cc24b",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Branch closed for maintenance\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "e09fbaf9-f84f-47ef-9532-0fff594cc24b",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note (financial gap, not a hard error):** cancelling a paid job-order (`order_source='job_order'`) returns 200, but `RefundService::processRefund()` explicitly refuses any `order_source` other than `'individual'` and falls back to `blockRefund()` — which only writes a transaction row if the company already has a wallet. For a company with no pre-existing wallet (the common case), the paid amount is neither gateway-refunded nor wallet-credited — it isn't recorded anywhere visible. May be intentional (reconciled via invoice instead), but worth confirming with the billing team. See `app/Services/Shared/RefundService.php:47-49`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Confirm Completion Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders/:id/confirm-completion",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders",
										":id",
										"confirm-completion"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `company.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, P1):** submitting a `stars` rating on completion throws a 500. `confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` is a foreign key to `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion with an assigned technician currently throws a database integrity-constraint violation. Confirming without a `stars` value works fine. See `OrderCommandService.php:135` and `database/migrations/2026_08_15_223534_create_ratings_table.php:14`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - completion confirmed, no rating submitted",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "add6226a-1f0d-47cd-a59d-c687fc4a5c65",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, P1):** submitting a `stars` rating on completion throws a 500. `confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` is a foreign key to `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion with an assigned technician currently throws a database integrity-constraint violation. Confirming without a `stars` value works fine. See `OrderCommandService.php:135` and `database/migrations/2026_08_15_223534_create_ratings_table.php:14`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Thanks for confirming — your order is complete.\",\n    \"data\": {\n        \"id\": 46,\n        \"uuid\": \"add6226a-1f0d-47cd-a59d-c687fc4a5c65\",\n        \"order_number\": \"ORD-260820-UQSB\",\n        \"status\": \"confirmed\",\n        \"scheduled_date\": \"2026-08-25\",\n        \"subtotal_amount\": \"396.71\",\n        \"vat_amount\": \"59.51\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"456.22\",\n        \"paid_amount\": \"456.22\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:52+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - order is not awaiting completion confirmation (not in finish status)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "add6226a-1f0d-47cd-a59d-c687fc4a5c65",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, P1):** submitting a `stars` rating on completion throws a 500. `confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` is a foreign key to `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion with an assigned technician currently throws a database integrity-constraint violation. Confirming without a `stars` value works fine. See `OrderCommandService.php:135` and `database/migrations/2026_08_15_223534_create_ratings_table.php:14`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order is not awaiting a completion confirmation.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - stars out of range (max 5)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "add6226a-1f0d-47cd-a59d-c687fc4a5c65",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, P1):** submitting a `stars` rating on completion throws a 500. `confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` is a foreign key to `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion with an assigned technician currently throws a database integrity-constraint violation. Confirming without a `stars` value works fine. See `OrderCommandService.php:135` and `database/migrations/2026_08_15_223534_create_ratings_table.php:14`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Rating must not be greater than 5.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"stars\": 1,\n    \"comment\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/confirm-completion",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"confirm-completion"
											],
											"variable": [
												{
													"key": "id",
													"value": "add6226a-1f0d-47cd-a59d-c687fc4a5c65",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.confirm-completion`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `stars`\n- **Description:** Rating\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:1|max:5`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:5` — must not exceed 5.\n### `comment`\n- **Description:** Comment\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug (shared with Client, P1):** submitting a `stars` rating on completion throws a 500. `confirmCompletion()` inserts `$order->technician_id` into `ratings.technician_id` — but `orders.technician_id` is a foreign key to `technicians.id` (the technician's profile row), while `ratings.technician_id`'s foreign key points at `users.id`. Every rated completion with an assigned technician currently throws a database integrity-constraint violation. Confirming without a `stars` value works fine. See `OrderCommandService.php:135` and `database/migrations/2026_08_15_223534_create_ratings_table.php:14`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject Price Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/orders/:id/reject-price",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"orders",
										":id",
										"reject-price"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
										}
									]
								},
								"description": "**Route:** `company.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - price rejected, order cancelled",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "7feb61a7-31fa-4241-8b0e-6a7cab227cc7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Price rejected, your order has been cancelled.\",\n    \"data\": {\n        \"id\": 44,\n        \"uuid\": \"7feb61a7-31fa-4241-8b0e-6a7cab227cc7\",\n        \"order_number\": \"ORD-260820-YOKV\",\n        \"status\": \"cancelled\",\n        \"scheduled_date\": null,\n        \"subtotal_amount\": \"85.59\",\n        \"vat_amount\": \"12.84\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"200.00\",\n        \"paid_amount\": \"98.43\",\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T11:20:52+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - order is not awaiting customer response",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "7feb61a7-31fa-4241-8b0e-6a7cab227cc7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order has no pending price to accept or reject.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/orders/:id/reject-price",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"orders",
												":id",
												"reject-price"
											],
											"variable": [
												{
													"key": "id",
													"value": "7feb61a7-31fa-4241-8b0e-6a7cab227cc7",
													"description": "Order UUID (orders.uuid) — copy the `uuid` field from a List/Show response, not the numeric id."
												}
											]
										},
										"description": "**Route:** `company.orders.reject-price`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "05. Invoices (Payments)",
					"item": [
						{
							"name": "List All Invoices",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/invoices?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"invoices"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/invoices?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"invoices"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoices retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"invoice_number\": \"INV-2026-000001\",\n                \"contract_number\": \"CTR-2026-000001\",\n                \"sequence_no\": 1,\n                \"total_invoices\": null,\n                \"amount_due\": \"500.00\",\n                \"amount_paid\": \"0.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"issued\",\n                \"status_label\": \"Due\",\n                \"receipt_status\": null,\n                \"issue_date\": \"2026-08-20\",\n                \"due_date\": \"2026-09-04\"\n            },\n            {\n                \"id\": 2,\n                \"invoice_number\": \"INV-2026-000002\",\n                \"contract_number\": \"CTR-2026-000001\",\n                \"sequence_no\": 2,\n                \"total_invoices\": null,\n                \"amount_due\": \"500.00\",\n                \"amount_paid\": \"0.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"paid\",\n                \"status_label\": \"Paid\",\n                \"receipt_status\": null,\n                \"issue_date\": \"2026-08-20\",\n                \"due_date\": \"2026-09-04\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/invoices?page=1\",\n            \"last\": \"http://localhost/api/v1/company/invoices?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/invoices?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/invoices\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/invoices?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"invoices"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Invoice Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/invoices/:invoice",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"invoices",
										":invoice"
									],
									"variable": [
										{
											"key": "invoice",
											"value": "3",
											"description": "Invoice ID"
										}
									]
								},
								"description": "**Route:** `company.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/invoices/:invoice",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"invoices",
												":invoice"
											],
											"variable": [
												{
													"key": "invoice",
													"value": "3",
													"description": "Invoice ID"
												}
											]
										},
										"description": "**Route:** `company.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoice retrieved successfully.\",\n    \"data\": {\n        \"id\": 3,\n        \"invoice_number\": \"INV-2026-000001\",\n        \"contract\": {\n            \"id\": 16,\n            \"contract_number\": \"CTR-2026-000001\",\n            \"total_amount\": \"1000.00\",\n            \"total_invoices_count\": null\n        },\n        \"sequence_no\": 1,\n        \"period_start\": \"2026-08-01\",\n        \"period_end\": \"2026-08-31\",\n        \"visits_count\": 0,\n        \"services\": [],\n        \"amount_due\": \"500.00\",\n        \"amount_paid\": \"0.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"issued\",\n        \"status_label\": \"Due\",\n        \"issue_date\": \"2026-08-20\",\n        \"due_date\": \"2026-09-04\",\n        \"pdf_path\": null,\n        \"receipt\": {\n            \"status\": null,\n            \"notice\": null\n        },\n        \"line_items\": [\n            {\n                \"id\": 1,\n                \"description\": \"Monthly installment\",\n                \"amount\": \"500.00\"\n            }\n        ],\n        \"created_at\": \"2026-08-20T11:20:51+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/invoices/:invoice",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"invoices",
												":invoice"
											],
											"variable": [
												{
													"key": "invoice",
													"value": "3",
													"description": "Invoice ID"
												}
											]
										},
										"description": "**Route:** `company.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Invoice",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/invoices/:invoice",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"invoices",
												":invoice"
											],
											"variable": [
												{
													"key": "invoice",
													"value": "3",
													"description": "Invoice ID"
												}
											]
										},
										"description": "**Route:** `company.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Report Summary",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/reports/summary",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"reports",
										"summary"
									]
								},
								"description": "**Route:** `company.reports.summary`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body, no query parameters. Returns a dashboard-style summary of the company's own orders (counts by status) and invoice financials (unpaid/paid/overdue), scoped to the authenticated company.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/reports/summary",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"reports",
												"summary"
											]
										},
										"description": "**Route:** `company.reports.summary`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body, no query parameters. Returns a dashboard-style summary of the company's own orders (counts by status) and invoice financials (unpaid/paid/overdue), scoped to the authenticated company.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Report retrieved successfully.\",\n    \"data\": {\n        \"orders\": {\n            \"total\": 0,\n            \"completed\": 0,\n            \"cancelled\": 0,\n            \"ongoing\": 0\n        },\n        \"financials\": {\n            \"unpaid_amount\": 0.0,\n            \"total_paid_amount\": 0.0,\n            \"overdue_days\": 0,\n            \"overdue_amount\": 0.0\n        }\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "05b. Home & Visits",
					"item": [
						{
							"name": "Company Home Dashboard",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/home",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"home"
									]
								},
								"description": "**Route:** `company.home.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\nReturns the company's home-screen summary: up to 4 in-progress orders (`on_the_way`/`start`/`finish`, soonest `scheduled_date` first) as `company_current_orders`, plus the single next upcoming order (`accepted`/`on_the_way`, future `scheduled_date`) as `incoming_order` (`null` if none). \"Visit\" and \"order\" are the same entity in this domain. Delegates to `App\\Services\\Company\\HomeService::index`, see `docs/api/04-company.md` §06 for the exact captured response.\n\n**Payload:**\nNo request body, no query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"Home Reterived\", \"data\": { \"incoming_order\": null, \"company_current_orders\": [...] } }\n```"
							},
							"response": []
						},
						{
							"name": "List All Visits",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/visits?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"visits"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "scope",
											"value": "active",
											"description": "active (non-terminal) or history (confirmed/cancelled)",
											"disabled": true
										},
										{
											"key": "status",
											"value": "",
											"description": "Filter to one exact order status, or 'current'",
											"disabled": true
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.visits.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\nReturns a paginated list of the company's own orders (\"visits\") — same underlying `orders` table as Orders & Jobs, scoped to the authenticated company for a dashboard-style visits list rather than the full lifecycle actions. Delegates to `App\\Services\\Company\\VisitService` (mirrors `Client\\Queries\\OrderQueryService`'s `scope`/`status`/`per_page` pagination pattern).\n\n**Payload:**\nNo request body. Use the documented query parameters.\n\n**Query parameters:**\n- `scope` — `active` (non-terminal orders) or `history` (`confirmed`/`cancelled`) (optional)\n- `status` — Filter to one exact order status, or `current` as an alias for \"every status except cancelled/confirmed\" (optional)\n- `per_page` — Items per page, 1–100, default 15 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": []
						}
					]
				},
				{
					"name": "06. Media / File Upload",
					"item": [
						{
							"name": "List All Media",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Media list retrieved successfully\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Create New Medium",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
											"type": "file"
										},
										{
											"key": "collection",
											"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/media",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									]
								},
								"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
													"type": "file"
												},
												{
													"key": "collection",
													"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/media",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											]
										},
										"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Upload Client",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
											"type": "file"
										},
										{
											"key": "type",
											"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/upload",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"upload"
									]
								},
								"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** public endpoint, no bearer token required."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"File uploaded successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"hash\": \"e428a7c4613e522faab63cdd1ef68f80\",\n        \"url\": \"/storage/uploads/general/b7dc8979-b6bb-49ac-aa43-9a2939f420e0.webp\",\n        \"mime_type\": \"image/webp\",\n        \"size\": 44,\n        \"original_name\": \"photo.jpg\",\n        \"variants\": {\n            \"thumbnail\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_thumbnail.webp\",\n            \"medium\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_medium.webp\",\n            \"large\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_large.webp\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Medium",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media/:media_id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media",
										":media_id"
									],
									"variable": [
										{
											"key": "media_id",
											"value": "{{media_id}}",
											"description": "Media_id ID"
										}
									]
								},
								"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media/:media_id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media",
												":media_id"
											],
											"variable": [
												{
													"key": "media_id",
													"value": "1",
													"description": "Media_id ID"
												}
											]
										},
										"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "07. Notifications",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"unread_count\": 0,\n        \"notifications\": {\n            \"super_admin_notifications\": [],\n            \"links\": {\n                \"first\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"last\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"prev\": null,\n                \"next\": null\n            },\n            \"meta\": {\n                \"current_page\": 1,\n                \"from\": null,\n                \"last_page\": 1,\n                \"links\": [\n                    {\n                        \"url\": null,\n                        \"label\": \"&laquo; Previous\",\n                        \"page\": null,\n                        \"active\": false\n                    },\n                    {\n                        \"url\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                        \"label\": \"1\",\n                        \"page\": 1,\n                        \"active\": true\n                    },\n                    {\n                        \"url\": null,\n                        \"label\": \"Next &raquo;\",\n                        \"page\": null,\n                        \"active\": false\n                    }\n                ],\n                \"path\": \"http://localhost:8000/api/v1/notifications\",\n                \"per_page\": 15,\n                \"to\": null,\n                \"total\": 0\n            }\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Notification Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Notification not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Clear All Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/clear-all",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										"clear-all"
									]
								},
								"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/clear-all",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												"clear-all"
											]
										},
										"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						},
						{
							"name": "Mark All Read Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"All notifications marked as read\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "08. Conversations & Messaging",
					"item": [
						{
							"name": "List All Conversations (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hi, I have a question.\",\n                \"created_at\": \"2026-08-20T10:52:49.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Invoice discrepancy\",\n                \"status\": \"Open\",\n                \"last_message\": \"Our latest invoice total does not match the contract terms.\",\n                \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Payout delay\",\n                \"status\": \"Open\",\n                \"last_message\": \"My last payout has not arrived yet.\",\n                \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"subject\": \"Billing question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 3,\n                \"sender_type\": \"customer\",\n                \"body\": \"Hi, I have a question.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Customer's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"subject\": \"Invoice discrepancy\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 9,\n                \"sender_type\": \"customer\",\n                \"body\": \"Our latest invoice total does not match the contract terms.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Payout delay\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"technician\",\n                \"body\": \"My last payout has not arrived yet.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another User's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Client)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									]
								},
								"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"subject\": \"Refund not received\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 2,\n                \"sender_type\": \"customer\",\n                \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									]
								},
								"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Contract renewal question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"We would like to renew our maintenance contract early — is that possible?\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - BUG: sender_type hardcoded to 'customer' for a company sender",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Sender type check\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"customer\",\n                \"body\": \"Verifying sender_type on the opening message.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Message (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Technician)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									]
								},
								"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Assignment issue\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"I was assigned an order outside my coverage area.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "09. Locations (Geo Hierarchy)",
					"item": [
						{
							"name": "List All Countries",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 2,\n                \"name\": \"Egypt\",\n                \"slug\": null,\n                \"currency\": \"EGP\",\n                \"nationality\": \"Egyptian\",\n                \"phone_code\": \"20\",\n                \"phone_starting_number\": 1,\n                \"phone_length\": 10,\n                \"short_name\": \"EG\",\n                \"continent\": \"africa\",\n                \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Governorates",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 2,\n                \"name\": \"Cairo\",\n                \"slug\": \"cairo\",\n                \"country_id\": 7,\n                \"lat\": 30,\n                \"lng\": 31,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"country\": {\n                    \"id\": 7,\n                    \"name\": \"Egypt\",\n                    \"short_name\": \"EG\",\n                    \"phone_code\": \"20\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Regions",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 2,\n                \"name\": \"Maadi\",\n                \"slug\": \"maadi\",\n                \"governorate_id\": 7,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.25,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"governorate\": {\n                    \"id\": 7,\n                    \"name\": \"Cairo\"\n                },\n                \"shipping_zone\": {\n                    \"id\": 1,\n                    \"name\": \"Zone A\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Country Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\",\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Saudi Arabia\",\n            \"slug\": null,\n            \"currency\": \"SAR\",\n            \"nationality\": \"Saudi\"\n        },\n        \"ar\": {\n            \"name\": \"السعودية\",\n            \"slug\": null,\n            \"currency\": \"ريال\",\n            \"nationality\": \"سعودي\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Governorate Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\",\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"country\": {\n            \"id\": 7,\n            \"name\": \"Egypt\",\n            \"short_name\": \"EG\",\n            \"phone_code\": \"20\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"regions\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Alexandria\",\n            \"slug\": \"alexandria\"\n        },\n        \"ar\": {\n            \"name\": \"الإسكندرية\",\n            \"slug\": \"alex-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Region Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\",\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"governorate\": {\n            \"id\": 7,\n            \"name\": \"Cairo\"\n        },\n        \"shipping_zone\": {\n            \"id\": 1,\n            \"name\": \"Zone A\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Nasr City\",\n            \"slug\": \"nasr-city\"\n        },\n        \"ar\": {\n            \"name\": \"مدينة نصر\",\n            \"slug\": \"nasr-city-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									]
								},
								"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Duplicate Phone Code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"country_id\": 1,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									]
								},
								"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a country.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Country",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected country does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"governorate_id\": 1,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									]
								},
								"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Governorate field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Governorate",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected governorate does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia Updated\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								}
							]
						},
						{
							"name": "Countries Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 31,\n                \"phone_code\": null,\n                \"phone_starting_number\": null,\n                \"phone_length\": null,\n                \"short_name\": null,\n                \"continent\": \"asia\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": null,\n                \"slug\": null,\n                \"currency\": null,\n                \"nationality\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Governorates Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 1,\n                \"country_id\": 32,\n                \"lat\": 30.04,\n                \"lng\": 31.23,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"القاهرة\",\n                \"slug\": \"القاهرة\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Regions Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 1,\n                \"governorate_id\": 2,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.22,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"مدينة نصر\",\n                \"slug\": \"مدينة-نصر\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Delete Country",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Governorate",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Region",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Countries)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										"bulk"
									]
								},
								"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Governorates)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										"bulk"
									]
								},
								"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Regions)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										"bulk"
									]
								},
								"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "10. Branches",
					"item": [
						{
							"name": "List All Branches (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"company_id\": 2,\n                \"company_name\": \"Keaton Schuppe\",\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"0221234567\",\n                \"address_text\": \"12 Tahrir Street, Cairo\",\n                \"latitude\": \"30.044420\",\n                \"longitude\": \"31.235712\",\n                \"working_hours\": [\n                    {\n                        \"to\": \"17:00\",\n                        \"day\": \"sunday\",\n                        \"from\": \"09:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Branches (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists own branches",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"1122233344\",\n                \"address_text\": \"123 Main St, Downtown\",\n                \"latitude\": 24.7136,\n                \"longitude\": 46.6753,\n                \"allowed_slots\": [\n                    \"morning\",\n                    \"afternoon\"\n                ],\n                \"working_hours\": [\n                    {\n                        \"day\": \"sunday\",\n                        \"day_label\": \"Sunday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    },\n                    {\n                        \"day\": \"monday\",\n                        \"day_label\": \"Monday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 11:20:50\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - own branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - branch belongs to a different company",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"company_id\": 10,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									]
								},
								"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Company field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"branch_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									]
								},
								"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing required fields",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"0221234599\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Company)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"1122233355\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - updating another company's branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Contacts Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"contacts"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch contacts updated successfully.\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"branch_id\": 1,\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        },\n        {\n            \"id\": 2,\n            \"branch_id\": 1,\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The contacts field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Active Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deactivated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - deletable branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - deleting another company's branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - branch has scheduled visits (BR-12)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Branch cannot be deleted — it has scheduled visits.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										"bulk"
									]
								},
								"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "11. Categories & Services (Catalog)",
					"item": [
						{
							"name": "List All Categories (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 2,\n                \"name\": \"Plumbing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": null,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"parent\": null,\n                \"has_children\": false,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/categories?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/categories\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 8,\n                \"name\": \"Pipe Fixing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": 7,\n                \"parent\": {\n                    \"id\": 7,\n                    \"name\": \"Plumbing\"\n                },\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"price\": \"50.00\",\n                \"contract_price\": \"45.00\",\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/services?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/services\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Categories (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists top-level categories",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Categories retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 30,\n            \"name\": \"Plumbing\",\n            \"description\": \"Pipe and water repairs\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"visit_price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Category Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Electrical\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": null,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"parent\": null,\n        \"has_children\": false,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"children\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Electrical\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كهرباء\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Service Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"name\": \"Leak Detection\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": 7,\n        \"parent\": {\n            \"id\": 7,\n            \"name\": \"Plumbing\"\n        },\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Leak Detection\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كشف التسريبات\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									]
								},
								"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Name (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									]
								},
								"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Category field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Parent",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected parent must be a top-level category.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "Update Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "List Service Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories"
									]
								},
								"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories"
											]
										},
										"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"\\u0627\\u0644\\u0633\\u0628\\u0627\\u0643\\u0629\",\n            \"description\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0645\\u0648\\u0627\\u0633\\u064a\\u0631 \\u0648\\u0627\\u0644\\u0635\\u0631\\u0641 \\u0648\\u062a\\u0631\\u0643\\u064a\\u0628\\u0627\\u062a \\u0627\\u0644\\u0645\\u064a\\u0627\\u0647\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 6,\n            \"name\": \"\\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0621\",\n            \"description\": \"\\u0627\\u0644\\u0623\\u0633\\u0644\\u0627\\u0643 \\u0648\\u0627\\u0644\\u0645\\u0642\\u0627\\u0628\\u0633 \\u0648\\u0627\\u0644\\u0625\\u0635\\u0644\\u0627\\u062d\\u0627\\u062a \\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0626\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 11,\n            \"name\": \"\\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641 \\u0648\\u0627\\u0644\\u062a\\u0628\\u0631\\u064a\\u062f\",\n            \"description\": \"\\u062a\\u0631\\u0643\\u064a\\u0628 \\u0648\\u0635\\u064a\\u0627\\u0646\\u0629 \\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 3,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 16,\n            \"name\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 4,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 20,\n            \"name\": \"\\u0627\\u0644\\u062f\\u0647\\u0627\\u0646\\u0627\\u062a \\u0648\\u0627\\u0644\\u0646\\u062c\\u0627\\u0631\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0627\\u0644\\u062f\\u0647\\u0627\\u0646 \\u0648\\u0627\\u0644\\u0623\\u0639\\u0645\\u0627\\u0644 \\u0627\\u0644\\u062e\\u0634\\u0628\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 5,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        }\n    ]\n}\n"
								}
							]
						},
						{
							"name": "List Category Services (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list active services under a category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 27,\n            \"parent_id\": 26,\n            \"name\": \"Wiring Repair\",\n            \"description\": \"Fix wiring\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        },\n        {\n            \"id\": 28,\n            \"parent_id\": 26,\n            \"name\": \"Socket Installation\",\n            \"description\": \"Install sockets\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List Category Services (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - lists services under category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Category services retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 31,\n            \"parent_id\": 30,\n            \"name\": \"Pipe Leak Repair\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": \"150.00\",\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Category",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Service",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Categories)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										"bulk"
									]
								},
								"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Services)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										"bulk"
									]
								},
								"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "12. General Settings & Feature Flags",
					"item": [
						{
							"name": "List All Feature flags",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"feature_flags\": [\n            {\n                \"id\": 1,\n                \"key\": \"new_checkout_flow\",\n                \"is_enabled\": false,\n                \"targeting_rules\": {\n                    \"countries\": [\n                        \"SA\",\n                        \"AE\"\n                    ]\n                },\n                \"description\": \"Rolls out the redesigned checkout flow.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            },\n            {\n                \"id\": 2,\n                \"key\": \"wallet_top_up\",\n                \"is_enabled\": true,\n                \"targeting_rules\": null,\n                \"description\": \"Enables wallet top-up via gateway.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/feature-flags\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Settings",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list settings",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"My App\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - list settings after update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"Maintenance Platform\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@maintenance-platform.example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									]
								},
								"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"key\": \"sms_notifications\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"percentage\": 50\n        },\n        \"description\": \"Enables SMS notifications for order updates.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"new_checkout_flow\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"countries\": [\n                \"SA\",\n                \"AE\"\n            ]\n        },\n        \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Setting",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									]
								},
								"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `SettingService::update()` calls `AppConfig::updateOrCreate(['key' => ...], ['value' => ...])`, which never sets `group` — a non-nullable column with no default. Updating an EXISTING key works fine (only `value` changes), but submitting a brand-new key throws a database error, returned as a 500. See `app/Services/Admin/SettingService.php:52-57` and `database/migrations/2026_07_26_090606_create_app_configs_table.php:24`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - bulk update existing settings",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings updated successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing setting key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Each setting must have a key.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - settings not an array",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Settings must be provided as an array.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 500 Internal Server Error: 500 Internal Server Error - BUG: new key insert fails (group column has no default)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Internal Server Error",
									"code": 500,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"SQLSTATE[HY000]: General error: 1364 Field 'group' doesn't have a default value (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: maintenance_testing_ad_a, SQL: insert into `app_configs` (`key`, `value`, `updated_at`, `created_at`) values (brand_new_setting_key, some value, 2026-08-20 12:09:45, 2026-08-20 12:09:45))\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Feature flag",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Feature flag Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id",
										"toggle"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Feature flag toggled\",\n    \"data\": {\n        \"id\": 2,\n        \"key\": \"wallet_top_up\",\n        \"is_enabled\": false,\n        \"targeting_rules\": null,\n        \"description\": \"Enables wallet top-up via gateway.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										"bulk"
									]
								},
								"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "13. Search",
					"item": [
						{
							"name": "Search Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/search?search=pipe",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"search"
									],
									"query": [
										{
											"key": "search",
											"value": "pipe"
										}
									]
								},
								"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\nCase-insensitive substring search over active, bookable services (leaf `Category` rows with a price) by translated name/description. Not paginated — runs an unpaginated query and reads only `search` (or `query` as a fallback param name); does not accept `page`/`per_page`/`sort`/`paginate`/`filters[...]`.\n\n**Payload:**\nNo request body.\n\n**Query parameters:**\n- `search` — Search term, matched against translated service `name` and `description` (optional; `query` also works as a fallback param name)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"Search results retrieved successfully\", \"data\": [ { \"id\": 25, \"name\": \"...\", \"description\": \"...\", \"parent\": {...} } ] }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - search services by name/description",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 25,\n            \"parent_id\": 24,\n            \"name\": \"Pipe Repair Plumbing\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 24,\n                \"name\": \"Plumbing Category\"\n            },\n            \"created_at\": \"2026-08-20T10:51:46.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no matches found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "14. Health & Status",
					"item": [
						{
							"name": "Health Check",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/health",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"health"
									]
								},
								"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\nInfrastructure health probe — checks database, cache, queue, and storage connectivity/latency and reports overall `healthy`/`degraded` status. Not a resource endpoint (no pagination/filtering/search), and the response does not use the standard `{status, message, data}` envelope — `HealthController::index()` calls `response()->json()` directly rather than the `json()` helper. Intended for load balancers and uptime monitors.\n\n**Payload:**\nNo request body, no query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"healthy\", \"checks\": { \"database\": {...}, \"cache\": {...}, \"queue\": {...}, \"storage\": {...} }, \"version\": \"1.0.0\", \"timestamp\": \"...\" }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/health?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"health"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"healthy\",\n    \"checks\": {\n        \"database\": {\n            \"status\": \"up\",\n            \"latency_ms\": 0.38\n        },\n        \"cache\": {\n            \"status\": \"up\",\n            \"driver\": \"database\",\n            \"latency_ms\": 4.35\n        },\n        \"queue\": {\n            \"status\": \"up\",\n            \"driver\": \"database\"\n        },\n        \"storage\": {\n            \"status\": \"up\",\n            \"driver\": \"local\"\n        }\n    },\n    \"version\": \"1.0.0\",\n    \"timestamp\": \"2026-08-19T21:35:04.385732Z\"\n}"
								}
							]
						},
						{
							"name": "Bootstrap Config",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/config/bootstrap",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"config",
										"bootstrap"
									]
								},
								"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/config/bootstrap",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"config",
												"bootstrap"
											]
										},
										"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Bootstrap configuration retrieved\",\n    \"data\": {\n        \"app\": {\n            \"min_version\": \"1.0.0\",\n            \"force_update\": false,\n            \"maintenance\": {\n                \"enabled\": false,\n                \"message\": \"Service temporarily unavailable\",\n                \"platforms\": []\n            }\n        },\n        \"features\": {\n            \"enable_notifications\": false,\n            \"enable_wallet\": true,\n            \"enable_cod\": true,\n            \"enable_reviews\": false,\n            \"maintenance_mode\": false,\n            \"new_checkout_flow\": true\n        },\n        \"integrations\": [],\n        \"ui\": {\n            \"primary_color\": \"#1d4ed8\",\n            \"home_sections_order\": \"sliders,categories,featured,new_arrivals\"\n        },\n        \"limits\": {\n            \"min_order_amount\": \"50\",\n            \"max_cart_items\": \"20\",\n            \"free_shipping_threshold\": \"500\"\n        },\n        \"urls\": []\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "15. Content & Reference (FAQs, Pages, Sliders)",
					"item": [
						{
							"name": "List All Faqs (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"f_a_q_s\": [\n            {\n                \"id\": 1,\n                \"type\": \"General\",\n                \"question\": \"What is this?\",\n                \"answer\": \"A maintenance platform.\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/faqs?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/faqs\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Pages",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"static_pages\": [\n            {\n                \"id\": 1,\n                \"type\": \"About Us\",\n                \"title\": \"About Us\",\n                \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/pages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/pages\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Sliders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"sliders\": [\n            {\n                \"id\": 1,\n                \"title\": \"Sale\",\n                \"subtitle\": \"Big discounts\",\n                \"link\": \"https://example.com\",\n                \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/sliders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/sliders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this is the route that actually answers `GET /client/faqs` today — it requires authentication even though FAQs are public content. A second, intentionally-public route (`client.content.faqs`) is registered earlier at the identical URI but is currently shadowed and unreachable (same-path route collision). Until that's fixed, calling `/client/faqs` without a bearer token returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 2,\n            \"type\": \"General\",\n            \"question\": \"كيف أنشئ حساب؟\",\n            \"answer\": \"انقر على التسجيل واملأ بياناتك.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I add a branch?\",\n            \"answer\": \"Use the Branches endpoint to add a new branch to your company account.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I get paid?\",\n            \"answer\": \"Payouts are processed weekly to your wallet.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Faq Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Orders And Payment\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"updated_at\": \"2026-08-20 12:09:42\",\n        \"en\": {\n            \"question\": \"How do I pay?\",\n            \"answer\": \"Via wallet or gateway.\"\n        },\n        \"ar\": {\n            \"question\": \"كيف ادفع؟\",\n            \"answer\": \"عبر المحفظة أو البوابة.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Page Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Return Policy\",\n        \"title\": \"Terms\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"content\": \"Terms content.\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Terms\",\n            \"content\": \"Terms content.\"\n        },\n        \"ar\": {\n            \"title\": \"الشروط\",\n            \"content\": \"محتوى الشروط.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Slider Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\",\n        \"link\": \"https://example.com/promo\",\n        \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Promo\",\n            \"subtitle\": \"Limited time\"\n        },\n        \"ar\": {\n            \"title\": \"عرض\",\n            \"subtitle\": \"وقت محدود\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									]
								},
								"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Question (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									]
								},
								"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a type.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									]
								},
								"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Link must be a valid URL.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}"
								}
							]
						},
						{
							"name": "Page Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/pages/:type",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"pages",
										":type"
									],
									"variable": [
										{
											"key": "type",
											"value": "shipping_policy",
											"description": "Static page type/slug — see ContentController for the allowed values."
										}
									]
								},
								"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Page retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true,\n        \"type\": \"shipping_policy\",\n        \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"title\": \"سياسة الشحن\",\n        \"content\": \"التوصيل العادي يستغرق 3-5 أيام عمل.\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Sliders Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Sliders retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"link\": \"https://example.com/summer\",\n            \"sort_order\": 1,\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"title\": \"تخفيضات الصيف\",\n            \"subtitle\": \"خصم يصل الى 50%\"\n        }\n    ]\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this route sits inside the `auth:api + active` protected group in routes/api/v1/client.php, requiring a bearer token even though About Us content is meant to be public (same pattern as `client.content.page`, which IS public). Likely a route-placement bug worth fixing — flagged for the routes owner."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"About Us\",\n        \"title\": \"من نحن\",\n        \"content\": \"نقدم خدمة عالية الجودة.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — this is inside the protected group and requires a bearer token even though Privacy Policy content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"سياسة الخصوصية\",\n        \"content\": \"خصوصيتك مهمة لنا.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect maintenance companies with skilled technicians and clients.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your company data is handled according to our privacy policy.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect skilled technicians with customers.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your privacy is important to us.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Faq",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Page",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Slider",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (FAQs)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										"bulk"
									]
								},
								"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Invalid ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Static Pages)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										"bulk"
									]
								},
								"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Sliders)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										"bulk"
									]
								},
								"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "Admin",
			"item": [
				{
					"name": "01. Authentication (Session)",
					"item": [
						{
							"name": "Logout",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"pm.collectionVariables.set(\"admin_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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/auth/logout",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"auth",
										"logout"
									]
								},
								"description": "**Route:** `admin.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - logout success",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `admin.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Logged out successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"device_id\": \"device-uuid-123\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/auth/logout",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"auth",
												"logout"
											]
										},
										"description": "**Route:** `admin.auth.logout`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `device_id`\n- **Description:** Device ID\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `device-uuid-123`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "02. Admin Profile",
					"item": [
						{
							"name": "Update Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Updated Admin Name\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"profile"
									]
								},
								"description": "**Route:** `admin.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `gender`\n- **Description:** Gender\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `male`\n- **Validation rules:** `sometimes|in:male,female`\n- `sometimes` — validated only when the field is present.\n- `in:male,female` — must be one of: male, female.\n### `birth_date`\n- **Description:** Birth Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - update name",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Admin Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile"
											]
										},
										"description": "**Route:** `admin.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `gender`\n- **Description:** Gender\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `male`\n- **Validation rules:** `sometimes|in:male,female`\n- `sometimes` — validated only when the field is present.\n- `in:male,female` — must be one of: male, female.\n### `birth_date`\n- **Description:** Birth Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile updated successfully\",\n    \"data\": {\n        \"id\": 90,\n        \"name\": \"Updated Admin Name\",\n        \"email\": \"profile.core@example.com\",\n        \"phone\": \"1099990000\",\n        \"user_type\": \"super_admin\",\n        \"user_type_label\": \"Super Admin\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T12:09:45.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - email already taken",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Admin Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile"
											]
										},
										"description": "**Route:** `admin.profile.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,1`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,1` — must be unique (users, email, 1).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,1`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,1` — must be unique (users, phone, 1).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n### `gender`\n- **Description:** Gender\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `male`\n- **Validation rules:** `sometimes|in:male,female`\n- `sometimes` — validated only when the field is present.\n- `in:male,female` — must be one of: male, female.\n### `birth_date`\n- **Description:** Birth Date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-19`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This email address is already registered.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Change Password Profile",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"current_password\": \"OldPass123\",\n    \"password\": \"NewPass456\",\n    \"password_confirmation\": \"NewPass456\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/profile/change-password",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"profile",
										"change-password"
									]
								},
								"description": "**Route:** `admin.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - password changed",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"OldPass123\",\n    \"password\": \"NewPass456\",\n    \"password_confirmation\": \"NewPass456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `admin.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Password changed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - wrong current password",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"OldPass123\",\n    \"password\": \"NewPass456\",\n    \"password_confirmation\": \"NewPass456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `admin.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The current password is incorrect.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - password confirmation mismatch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"current_password\": \"OldPass123\",\n    \"password\": \"NewPass456\",\n    \"password_confirmation\": \"NewPass456\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile/change-password",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile",
												"change-password"
											]
										},
										"description": "**Route:** `admin.profile.change-password`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `current_password`\n- **Description:** Current Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `password`\n- **Description:** New Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8|confirmed`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n- `confirmed` — requires a matching *_confirmation field.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Password confirmation does not match.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Profile Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/profile",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"profile"
									]
								},
								"description": "**Route:** `admin.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - view own profile",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile"
											]
										},
										"description": "**Route:** `admin.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Profile retrieved successfully\",\n    \"data\": {\n        \"id\": 90,\n        \"name\": \"Core Admin\",\n        \"email\": \"profile.core@example.com\",\n        \"phone\": \"1099990000\",\n        \"user_type\": \"super_admin\",\n        \"user_type_label\": \"Super Admin\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"avatar\": null,\n        \"is_email_verified\": true,\n        \"is_phone_verified\": false,\n        \"last_login_at\": null,\n        \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n        \"roles\": [],\n        \"permissions\": []\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/profile",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"profile"
											]
										},
										"description": "**Route:** `admin.profile.view`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "03. Users / Clients",
					"item": [
						{
							"name": "List All Users",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[status]",
											"value": "active",
											"description": "Filter by status: active, pending, suspended, rejected",
											"disabled": true
										},
										{
											"key": "filters[user_type]",
											"value": "individual",
											"description": "Filter by user type: individual, company, technician",
											"disabled": true
										},
										{
											"key": "from",
											"value": "2024-01-01",
											"description": "Filter from date",
											"disabled": true
										},
										{
											"key": "to",
											"value": "2024-12-31",
											"description": "Filter to date",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 2,\n                \"name\": \"Sheldon Wintheiser\",\n                \"email\": \"gulgowski.zoey@example.net\",\n                \"phone\": \"1814303906\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            },\n            {\n                \"id\": 3,\n                \"name\": \"Rosemarie Kohler\",\n                \"email\": \"mblick@example.org\",\n                \"phone\": \"1249129369\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            },\n            {\n                \"id\": 4,\n                \"name\": \"Caleb O'Connell Sr.\",\n                \"email\": \"cnienow@example.com\",\n                \"phone\": \"1813714451\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 3,\n            \"total\": 3\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 4,\n                \"name\": \"Caleb O'Connell Sr.\",\n                \"email\": \"cnienow@example.com\",\n                \"phone\": \"1813714451\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 112,\n                \"name\": \"Kareem Monahan\",\n                \"email\": \"oreilly.tamia@example.net\",\n                \"phone\": \"1475871809\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:24\"\n            },\n            {\n                \"id\": 113,\n                \"name\": \"Ms. Maybell King\",\n                \"email\": \"friesen.elsa@example.net\",\n                \"phone\": \"1945270988\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:24\"\n            },\n            {\n                \"id\": 114,\n                \"name\": \"Miles McClure\",\n                \"email\": \"andrew.schowalter@example.org\",\n                \"phone\": \"1019628508\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:24\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 3,\n            \"total\": 3\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 114,\n                \"name\": \"Miles McClure\",\n                \"email\": \"andrew.schowalter@example.org\",\n                \"phone\": \"1019628508\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:24\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 112,\n                \"name\": \"Shaylee Labadie\",\n                \"email\": \"heath92@example.org\",\n                \"phone\": \"1169843252\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            },\n            {\n                \"id\": 113,\n                \"name\": \"Ms. River Koelpin\",\n                \"email\": \"neal.bernhard@example.net\",\n                \"phone\": \"1533949144\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            },\n            {\n                \"id\": 114,\n                \"name\": \"America Lemke\",\n                \"email\": \"adelbert.stanton@example.net\",\n                \"phone\": \"1102903722\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 3,\n            \"total\": 3\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[status]",
													"value": "active",
													"description": "Filter by status: active, pending, suspended, rejected",
													"disabled": true
												},
												{
													"key": "filters[user_type]",
													"value": "individual",
													"description": "Filter by user type: individual, company, technician",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.users.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[status]` — Filter by status: active, pending, suspended, rejected (optional)\n- `filters[user_type]` — Filter by user type: individual, company, technician (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Users retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 114,\n                \"name\": \"America Lemke\",\n                \"email\": \"adelbert.stanton@example.net\",\n                \"phone\": \"1102903722\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"individual\",\n                \"user_type_label\": \"Individual\",\n                \"status\": \"pending\",\n                \"status_label\": \"Pending\",\n                \"roles\": [],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/users?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/users?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/users\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show User Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:user",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":user"
									],
									"variable": [
										{
											"key": "user",
											"value": "3",
											"description": "User ID"
										}
									]
								},
								"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:24\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:24\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New User",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users"
									]
								},
								"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - individual",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - technician",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 6,\n        \"name\": \"Test Technician\",\n        \"email\": \"technician.store@example.com\",\n        \"phone\": \"1055500002\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"technician\",\n        \"user_type_label\": \"Technician\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Technician Full Name\",\n            \"specialty\": null,\n            \"daily_order_capacity\": 5,\n            \"employment_type\": \"full_time\",\n            \"address\": null,\n            \"availability_status\": \"unavailable\",\n            \"avg_rating\": \"0.0\",\n            \"completed_orders_count\": 0,\n            \"governorate\": null\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected account type is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - individual",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:24\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:24\"\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - technician",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 116,\n        \"name\": \"Test Technician\",\n        \"email\": \"technician.store@example.com\",\n        \"phone\": \"1055500002\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"technician\",\n        \"user_type_label\": \"Technician\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Technician Full Name\",\n            \"specialty\": null,\n            \"daily_order_capacity\": 5,\n            \"employment_type\": \"full_time\",\n            \"address\": null,\n            \"availability_status\": \"unavailable\",\n            \"avg_rating\": \"0.0\",\n            \"completed_orders_count\": 0,\n            \"governorate\": null\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected account type is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - individual",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Test Individual\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - technician",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 116,\n        \"name\": \"Test Technician\",\n        \"email\": \"technician.store@example.com\",\n        \"phone\": \"1055500002\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"technician\",\n        \"user_type_label\": \"Technician\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Technician Full Name\",\n            \"specialty\": null,\n            \"daily_order_capacity\": 5,\n            \"employment_type\": \"full_time\",\n            \"address\": null,\n            \"availability_status\": \"unavailable\",\n            \"avg_rating\": \"0.0\",\n            \"completed_orders_count\": 0,\n            \"governorate\": null\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_type\": \"individual\",\n    \"name\": \"Test Individual\",\n    \"email\": \"individual.store@example.com\",\n    \"phone\": \"1055500001\",\n    \"password\": \"password123\",\n    \"full_name\": \"Test Individual Full Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users"
											]
										},
										"description": "**Route:** `admin.users.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `super_admin`\n- **Validation rules:** `required|in:super_admin,admin,individual,company,technician`\n- `required` — must be provided.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected account type is invalid.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update User",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:user",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":user"
									],
									"variable": [
										{
											"key": "user",
											"value": "3",
											"description": "User ID"
										}
									]
								},
								"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"name\": \"Updated Individual Name\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Updated Individual Name\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:24\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 115,\n        \"name\": \"Updated Individual Name\",\n        \"email\": \"individual.store@example.com\",\n        \"phone\": \"1055500001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"individual\",\n        \"user_type_label\": \"Individual\",\n        \"status\": \"pending\",\n        \"status_label\": \"Pending\",\n        \"roles\": [],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"profile\": {\n            \"full_name\": \"Test Individual Full Name\",\n            \"completed_orders_total\": 0,\n            \"cancelled_orders_total\": 0\n        },\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"assignment_log\": [],\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Updated Individual Name\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "5",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_type`\n- **Description:** Account Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `super_admin`\n- **Validation rules:** `sometimes|in:super_admin,admin,individual,company,technician`\n- `sometimes` — validated only when the field is present.\n- `in:super_admin,admin,individual,company,technician` — must be one of: super_admin, admin, individual, company, technician.\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,individual,technician|string|max:150`\n- `required_if:user_type,individual,technician` — required when user_type, individual, technician.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `Example Name`\n- **Validation rules:** `required_if:user_type,company|string|max:200`\n- `required_if:user_type,company` — required when user_type, company.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `2`\n- **Validation rules:** `required_if:user_type,technician|integer|exists:categories,id`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** conditional\n- **Example:** `1`\n- **Validation rules:** `required_if:user_type,technician|integer|min:1`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** conditional\n- **Example:** `in_house`\n- **Validation rules:** `required_if:user_type,technician|string|in:in_house,freelance`\n- `required_if:user_type,technician` — required when user_type, technician.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `years_experience`\n- **Description:** Years experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Activate User",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":id",
										"activate"
									],
									"variable": [
										{
											"key": "id",
											"value": "18",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"name\": \"Caleb O'Connell Sr.\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already active (idempotent)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 13,\n        \"name\": \"Brook Abbott\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 114,\n        \"name\": \"Miles McClure\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already active (idempotent)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 123,\n        \"name\": \"Mariela McCullough\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 114,\n        \"name\": \"America Lemke\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already active (idempotent)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 123,\n        \"name\": \"Prof. Tate Deckow Sr.\",\n        \"status\": \"active\"\n    }\n}"
								}
							]
						},
						{
							"name": "Reject User",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":id",
										"reject"
									],
									"variable": [
										{
											"key": "id",
											"value": "6",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User rejected successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"name\": \"Krista Smith\",\n        \"status\": \"rejected\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User rejected successfully\",\n    \"data\": {\n        \"id\": 117,\n        \"name\": \"Wallace King\",\n        \"status\": \"rejected\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User rejected successfully\",\n    \"data\": {\n        \"id\": 117,\n        \"name\": \"Dr. Kameron McCullough\",\n        \"status\": \"rejected\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Incomplete documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "7",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle User Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "3",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User suspended successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"name\": \"Paxton Hill MD\",\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - suspended to active",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"name\": \"Paxton Hill MD\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User suspended successfully\",\n    \"data\": {\n        \"id\": 118,\n        \"name\": \"Prof. Antoinette Mueller\",\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - suspended to active",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 118,\n        \"name\": \"Prof. Antoinette Mueller\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User suspended successfully\",\n    \"data\": {\n        \"id\": 118,\n        \"name\": \"Leanna Roob\",\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - suspended to active",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"User activated successfully\",\n    \"data\": {\n        \"id\": 118,\n        \"name\": \"Leanna Roob\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.users.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete User",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/:user",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										":user"
									],
									"variable": [
										{
											"key": "user",
											"value": "3",
											"description": "User ID"
										}
									]
								},
								"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/:user",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												":user"
											],
											"variable": [
												{
													"key": "user",
													"value": "1",
													"description": "User ID"
												}
											]
										},
										"description": "**Route:** `admin.users.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/users/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"users",
										"bulk"
									]
								},
								"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/users/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"users",
												"bulk"
											]
										},
										"description": "**Route:** `admin.users.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "04. Technicians (Management)",
					"item": [
						{
							"name": "List All Technicians",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.technicians.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.technicians.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technicians retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"user_id\": 3,\n                \"name\": \"Ahmed Technician\",\n                \"email\": \"ahmed.tech@example.test\",\n                \"phone\": \"01099998888\",\n                \"status\": \"active\",\n                \"user_type\": \"technician\",\n                \"full_name\": \"Ahmed Mohamed\",\n                \"category_id\": 1,\n                \"category_name\": \"Plumbing\",\n                \"governorate\": {\n                    \"id\": 1,\n                    \"name\": \"Cairo\"\n                },\n                \"specialty\": \"Plumbing\",\n                \"employment_type\": \"in_house\",\n                \"availability_status\": \"available\",\n                \"avg_rating\": 0,\n                \"completed_orders_count\": 0,\n                \"daily_order_capacity\": 6,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/technicians?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/technicians?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/technicians?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/technicians\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Technician Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										":technician"
									],
									"variable": [
										{
											"key": "technician",
											"value": "2",
											"description": "Technician ID"
										}
									]
								},
								"description": "**Route:** `admin.technicians.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician retrieved\",\n    \"data\": {\n        \"id\": 1,\n        \"user_id\": 3,\n        \"name\": \"Ahmed Technician\",\n        \"email\": \"ahmed.tech@example.test\",\n        \"phone\": \"01099998888\",\n        \"status\": \"active\",\n        \"user_type\": \"technician\",\n        \"full_name\": \"Ahmed Mohamed\",\n        \"category_id\": 1,\n        \"category_name\": \"Plumbing\",\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"specialty\": \"Plumbing\",\n        \"employment_type\": \"in_house\",\n        \"availability_status\": \"available\",\n        \"avg_rating\": 0,\n        \"completed_orders_count\": 0,\n        \"daily_order_capacity\": 6,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"id_number\": \"29901011234567\",\n        \"address\": \"5 Nile Street\",\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"years_experience\": 4,\n        \"coverage_areas\": [\n            {\n                \"id\": 1,\n                \"name\": \"Maadi\"\n            }\n        ],\n        \"personal_photo\": null,\n        \"national_id_front\": null,\n        \"national_id_back\": null,\n        \"cv_file\": null,\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"recent_orders\": [],\n        \"recent_ratings\": [],\n        \"wallet\": null\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Technician",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Ahmed Technician\",\n    \"email\": \"ahmed.tech@example.test\",\n    \"phone\": \"01099998888\",\n    \"password\": \"password123\",\n    \"status\": \"active\",\n    \"full_name\": \"Ahmed Mohamed\",\n    \"category_id\": 2,\n    \"daily_order_capacity\": 6,\n    \"employment_type\": \"in_house\",\n    \"address\": \"5 Nile Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"id_number\": \"29901011234567\",\n    \"years_experience\": 4,\n    \"coverage_areas\": [\n        1\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians"
									]
								},
								"description": "**Route:** `admin.technicians.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:50`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `in_house`\n- **Validation rules:** `required|string|in:in_house,freelance`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Ahmed Technician\",\n    \"email\": \"ahmed.tech@example.test\",\n    \"phone\": \"01099998888\",\n    \"password\": \"password123\",\n    \"status\": \"active\",\n    \"full_name\": \"Ahmed Mohamed\",\n    \"category_id\": 1,\n    \"daily_order_capacity\": 6,\n    \"employment_type\": \"in_house\",\n    \"address\": \"5 Nile Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"id_number\": \"29901011234567\",\n    \"years_experience\": 4,\n    \"coverage_areas\": [\n        1\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians"
											]
										},
										"description": "**Route:** `admin.technicians.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:50`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `in_house`\n- **Validation rules:** `required|string|in:in_house,freelance`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician created\",\n    \"data\": {\n        \"id\": 1,\n        \"user_id\": 3,\n        \"name\": \"Ahmed Technician\",\n        \"email\": \"ahmed.tech@example.test\",\n        \"phone\": \"01099998888\",\n        \"status\": \"active\",\n        \"user_type\": \"technician\",\n        \"full_name\": \"Ahmed Mohamed\",\n        \"category_id\": 1,\n        \"category_name\": \"Plumbing\",\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"specialty\": \"Plumbing\",\n        \"employment_type\": \"in_house\",\n        \"availability_status\": \"available\",\n        \"avg_rating\": 0,\n        \"completed_orders_count\": 0,\n        \"daily_order_capacity\": 6,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"id_number\": \"29901011234567\",\n        \"address\": \"5 Nile Street\",\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"years_experience\": 4,\n        \"coverage_areas\": [\n            {\n                \"id\": 1,\n                \"name\": \"Maadi\"\n            }\n        ],\n        \"personal_photo\": null,\n        \"national_id_front\": null,\n        \"national_id_back\": null,\n        \"cv_file\": null,\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Ahmed Technician\",\n    \"email\": \"ahmed.tech@example.test\",\n    \"phone\": \"01099998888\",\n    \"password\": \"password123\",\n    \"status\": \"active\",\n    \"full_name\": \"Ahmed Mohamed\",\n    \"category_id\": 1,\n    \"daily_order_capacity\": 6,\n    \"employment_type\": \"in_house\",\n    \"address\": \"5 Nile Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"id_number\": \"29901011234567\",\n    \"years_experience\": 4,\n    \"coverage_areas\": [\n        1\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians"
											]
										},
										"description": "**Route:** `admin.technicians.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:160`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email` — must be unique (users, email).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone` — must be unique (users, phone).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|string|min:8`\n- `required` — must be provided.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `2`\n- **Validation rules:** `required|integer|exists:categories,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1|max:50`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `in_house`\n- **Validation rules:** `required|string|in:in_house,freelance`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a name.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Technician",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Ahmed Mohamed Updated\",\n    \"years_experience\": 5\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										":technician"
									],
									"variable": [
										{
											"key": "technician",
											"value": "2",
											"description": "Technician ID"
										}
									]
								},
								"description": "**Route:** `admin.technicians.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `in_house`\n- **Validation rules:** `sometimes|string|in:in_house,freelance`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Mohamed Updated\",\n    \"years_experience\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `in_house`\n- **Validation rules:** `sometimes|string|in:in_house,freelance`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician updated\",\n    \"data\": {\n        \"id\": 1,\n        \"user_id\": 3,\n        \"name\": \"Ahmed Technician\",\n        \"email\": \"ahmed.tech@example.test\",\n        \"phone\": \"01099998888\",\n        \"status\": \"active\",\n        \"user_type\": \"technician\",\n        \"full_name\": \"Ahmed Mohamed Updated\",\n        \"category_id\": 1,\n        \"category_name\": \"Plumbing\",\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"specialty\": \"Plumbing\",\n        \"employment_type\": \"in_house\",\n        \"availability_status\": \"available\",\n        \"avg_rating\": 0,\n        \"completed_orders_count\": 0,\n        \"daily_order_capacity\": 6,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"id_number\": \"29901011234567\",\n        \"address\": \"5 Nile Street\",\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"years_experience\": 5,\n        \"coverage_areas\": [\n            {\n                \"id\": 1,\n                \"name\": \"Maadi\"\n            }\n        ],\n        \"personal_photo\": null,\n        \"national_id_front\": null,\n        \"national_id_back\": null,\n        \"cv_file\": null,\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Mohamed Updated\",\n    \"years_experience\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `in_house`\n- **Validation rules:** `sometimes|string|in:in_house,freelance`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Ahmed Mohamed Updated\",\n    \"years_experience\": 5\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:160`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:160` — must not exceed 160.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:pending,active,suspended,rejected`\n- `sometimes` — validated only when the field is present.\n- `in:pending,active,suspended,rejected` — must be one of: pending, active, suspended, rejected.\n### `locale`\n- **Description:** Locale\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `category_id`\n- **Description:** Service Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `sometimes|integer|exists:categories,id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `daily_order_capacity`\n- **Description:** Daily Order Capacity\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1|max:50`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n- `max:50` — must not exceed 50.\n### `employment_type`\n- **Description:** Employment Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `in_house`\n- **Validation rules:** `sometimes|string|in:in_house,freelance`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `in:in_house,freelance` — must be one of: in_house, freelance.\n- **Gates wallet withdrawal eligibility, not just a label.** Only `freelance` technicians can withdraw (`Wallet::isFreelanceTechnician()`) — `in_house` technician wallets are locked at zero.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:countries,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** City\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:governorates,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** District\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:regions,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `id_number`\n- **Description:** ID Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `years_experience`\n- **Description:** Years of Experience\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|min:0|max:50`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `min:0` — must be at least .\n- `max:50` — must not exceed 50.\n### `coverage_areas`\n- **Description:** Coverage Areas (Regions)\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `coverage_areas.*`\n- **Description:** Coverage areas item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:regions,id`\n- `integer` — must be a whole number.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `personal_photo`\n- **Description:** Personal photo\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_front`\n- **Description:** National id front\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `national_id_back`\n- **Description:** National id back\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n### `cv_file`\n- **Description:** Cv file\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer|exists:media,id`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n- `exists:media,id` — must reference an existing record (media, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This email address is already registered.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Availability Technician",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-availability",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										":id",
										"toggle-availability"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.technicians.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":id",
												"toggle-availability"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Availability status updated\",\n    \"data\": {\n        \"availability_status\": \"unavailable\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-availability",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":id",
												"toggle-availability"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.toggle-availability`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Status Technician",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-status",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										":id",
										"toggle-status"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.technicians.toggle-status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-status",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":id",
												"toggle-status"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.toggle-status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician suspended\",\n    \"data\": {\n        \"id\": 3,\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:id/toggle-status",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":id",
												"toggle-status"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.toggle-status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Technician",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										":technician"
									],
									"variable": [
										{
											"key": "technician",
											"value": "2",
											"description": "Technician ID"
										}
									]
								},
								"description": "**Route:** `admin.technicians.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/:technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												":technician"
											],
											"variable": [
												{
													"key": "technician",
													"value": "1",
													"description": "Technician ID"
												}
											]
										},
										"description": "**Route:** `admin.technicians.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/technicians/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"technicians",
										"bulk"
									]
								},
								"description": "**Route:** `admin.technicians.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												"bulk"
											]
										},
										"description": "**Route:** `admin.technicians.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												"bulk"
											]
										},
										"description": "**Route:** `admin.technicians.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/technicians/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"technicians",
												"bulk"
											]
										},
										"description": "**Route:** `admin.technicians.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "05. Companies (Management)",
					"item": [
						{
							"name": "List All Companies",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.companies.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.companies.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Companies retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 15,\n                \"legal_name\": \"Brandy Feil\",\n                \"email\": \"matilde86@example.net\",\n                \"account_owner_phone\": \"1650055823\",\n                \"tax_number\": null,\n                \"commercial_registration_no\": null,\n                \"status\": \"active\",\n                \"created_at\": \"2026-08-20 12:07:53\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/companies?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/companies\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.companies.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Companies retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 125,\n                \"legal_name\": \"Bertram Collier\",\n                \"email\": \"thirthe@example.com\",\n                \"account_owner_phone\": \"1190501338\",\n                \"tax_number\": null,\n                \"commercial_registration_no\": null,\n                \"status\": \"active\",\n                \"created_at\": \"2026-08-20 12:09:25\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/companies?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/companies\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.companies.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Companies retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 125,\n                \"legal_name\": \"Wilton Kautzer\",\n                \"email\": \"lindgren.jarrett@example.net\",\n                \"account_owner_phone\": \"1229677812\",\n                \"tax_number\": null,\n                \"commercial_registration_no\": null,\n                \"status\": \"active\",\n                \"created_at\": \"2026-08-20 12:09:46\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/companies?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/companies?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/companies\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Company Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:company",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":company"
									],
									"variable": [
										{
											"key": "company",
											"value": "10",
											"description": "Company ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 16,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New 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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies"
									]
								},
								"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 16,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Legal Company Name field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Legal Company Name field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC\",\n    \"email\": \"acme.store@example.com\",\n    \"account_owner_phone\": \"1066600001\",\n    \"account_owner_phone_code\": \"20\",\n    \"password\": \"password123\",\n    \"tax_number\": \"VAT-123456\",\n    \"commercial_registration_no\": \"CR-987654\",\n    \"commercial_register_expiry_date\": \"2027-08-24\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies"
											]
										},
										"description": "**Route:** `admin.companies.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20|unique:users,phone,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `account_owner_phone_code`\n- **Description:** Account Owner Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_register_expiry_date`\n- **Description:** Commercial Register Expiry Date\n- **Type:** `string` (date)\n- **Required:** optional\n- **Example:** `2027-08-24`\n- **Validation rules:** `nullable|date`\n- `nullable` — may be null.\n- `date` — must be a valid date.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Legal Company Name field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:company",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":company"
									],
									"variable": [
										{
											"key": "company",
											"value": "10",
											"description": "Company ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 16,\n        \"legal_name\": \"Acme Maintenance LLC (Updated)\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC (Updated)\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 126,\n        \"legal_name\": \"Acme Maintenance LLC (Updated)\",\n        \"email\": \"acme.store@example.com\",\n        \"account_owner_phone\": \"1066600001\",\n        \"tax_number\": \"VAT-123456\",\n        \"commercial_registration_no\": \"CR-987654\",\n        \"status\": \"pending\",\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"commercial_register\": {\n            \"file_url\": null,\n            \"expiry_date\": null,\n            \"status\": null,\n            \"status_label\": null\n        },\n        \"locale\": \"ar\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"last_login_at\": null,\n        \"suspension_reason\": null,\n        \"addresses\": [],\n        \"wallet\": null,\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"legal_name\": \"Acme Maintenance LLC (Updated)\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "16",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `legal_name`\n- **Description:** Legal Company Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:200`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `email`\n- **Description:** Official Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `account_owner_phone`\n- **Description:** Account Owner Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20|unique:users,phone,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `pending`\n- **Validation rules:** `sometimes|in:\"pending\",\"active\",\"suspended\",\"rejected\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"pending\",\"active\",\"suspended\",\"rejected\"` — must be one of: \"pending\", \"active\", \"suspended\", \"rejected\".\n### `tax_number`\n- **Description:** VAT Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `300012345600003`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `commercial_registration_no`\n- **Description:** Commercial Registration Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1010101010`\n- **Validation rules:** `nullable|string|max:50`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Activate 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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:id/activate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":id",
										"activate"
									],
									"variable": [
										{
											"key": "id",
											"value": "6",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "17",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company activated successfully\",\n    \"data\": {\n        \"id\": 17,\n        \"name\": \"Victoria Schamberger PhD\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "17",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company activated successfully\",\n    \"data\": {\n        \"id\": 127,\n        \"name\": \"Mr. Merl Goodwin\",\n        \"status\": \"active\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/activate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"activate"
											],
											"variable": [
												{
													"key": "id",
													"value": "17",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.activate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company activated successfully\",\n    \"data\": {\n        \"id\": 127,\n        \"name\": \"Catherine White\",\n        \"status\": \"active\"\n    }\n}"
								}
							]
						},
						{
							"name": "Approve Commercial register",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":id",
										"commercial-register",
										"approve"
									],
									"variable": [
										{
											"key": "id",
											"value": "6",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register approved successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register approved successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register approved successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject Commercial register",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":id",
										"commercial-register",
										"reject"
									],
									"variable": [
										{
											"key": "id",
											"value": "6",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register rejected successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 No Profile / Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register rejected successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 No Profile / Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Commercial register rejected successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 No Profile / Not Pending",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Does not meet platform requirements.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/commercial-register/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"commercial-register",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.commercial-register.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This commercial register is not pending review.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject 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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Invalid tax number\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:id/reject",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":id",
										"reject"
									],
									"variable": [
										{
											"key": "id",
											"value": "6",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Invalid tax number\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "18",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company rejected successfully\",\n    \"data\": {\n        \"id\": 18,\n        \"name\": \"Prof. Wyatt Stanton DDS\",\n        \"status\": \"rejected\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Invalid tax number\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "18",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company rejected successfully\",\n    \"data\": {\n        \"id\": 128,\n        \"name\": \"Jewell Funk\",\n        \"status\": \"rejected\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Invalid tax number\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "18",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company rejected successfully\",\n    \"data\": {\n        \"id\": 128,\n        \"name\": \"Prof. Clotilde Gutkowski DDS\",\n        \"status\": \"rejected\"\n    }\n}"
								}
							]
						},
						{
							"name": "Toggle Company Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "10",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "19",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company suspended successfully\",\n    \"data\": {\n        \"id\": 19,\n        \"name\": \"Miss Alison Lueilwitz\",\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "19",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company suspended successfully\",\n    \"data\": {\n        \"id\": 129,\n        \"name\": \"Jarrell Bradtke Jr.\",\n        \"status\": \"suspended\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - active to suspended",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "19",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company suspended successfully\",\n    \"data\": {\n        \"id\": 129,\n        \"name\": \"Mrs. Jadyn Watsica\",\n        \"status\": \"suspended\"\n    }\n}"
								}
							]
						},
						{
							"name": "Delete Company",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/:company",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										":company"
									],
									"variable": [
										{
											"key": "company",
											"value": "10",
											"description": "Company ID"
										}
									]
								},
								"description": "**Route:** `admin.companies.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "1",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "1",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/:company",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												":company"
											],
											"variable": [
												{
													"key": "company",
													"value": "1",
													"description": "Company ID"
												}
											]
										},
										"description": "**Route:** `admin.companies.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/companies/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"companies",
										"bulk"
									]
								},
								"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/companies/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"companies",
												"bulk"
											]
										},
										"description": "**Route:** `admin.companies.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "06. Orders / Requests",
					"item": [
						{
							"name": "List All Orders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK (orders found)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.orders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم استرجاع الطلبات بنجاح.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"uuid\": \"ab984891-fe8c-4676-902c-0d5aa3225134\",\n                \"order_number\": \"ORD-260820-TEQC\",\n                \"customer\": {\n                    \"id\": 2,\n                    \"name\": \"Mr. Cristopher Hahn\"\n                },\n                \"technician\": {\n                    \"id\": null,\n                    \"name\": null\n                },\n                \"order_source\": \"individual\",\n                \"booking_type\": \"instant\",\n                \"scheduled_date\": \"2026-08-26\",\n                \"status\": \"pending\",\n                \"total_amount\": \"180.58\",\n                \"paid_amount\": \"180.58\",\n                \"is_auto\": false,\n                \"needs_attention\": false,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/orders?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/orders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/orders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/orders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Order Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:order",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":order"
									],
									"variable": [
										{
											"key": "order",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `admin.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "ab984891-fe8c-4676-902c-0d5aa3225134",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم استرجاع الطلب بنجاح.\",\n    \"data\": {\n        \"id\": 1,\n        \"uuid\": \"ab984891-fe8c-4676-902c-0d5aa3225134\",\n        \"order_number\": \"ORD-260820-TEQC\",\n        \"customer\": {\n            \"id\": 2,\n            \"name\": \"Mr. Cristopher Hahn\",\n            \"email\": \"reed70@example.net\",\n            \"phone\": \"1418821609\"\n        },\n        \"technician\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"assigned_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"branch\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"contract_id\": null,\n        \"address\": {\n            \"id\": 1,\n            \"title\": \"Home\"\n        },\n        \"order_source\": \"individual\",\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": \"2026-08-26\",\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"157.03\",\n        \"vat_amount\": \"23.55\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"180.58\",\n        \"paid_amount\": \"180.58\",\n        \"is_auto\": false,\n        \"needs_attention\": false,\n        \"internal_notes\": [],\n        \"items\": [\n            {\n                \"id\": 1,\n                \"category_id\": null,\n                \"service_name\": \"cum ipsum repudiandae\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"232.49\",\n                \"quantity\": 2,\n                \"line_total\": \"464.98\",\n                \"is_quoted\": false,\n                \"notes\": null,\n                \"request_description\": null,\n                \"request_media_url\": null\n            }\n        ],\n        \"payments\": [],\n        \"attachments\": [],\n        \"status_history\": [\n            {\n                \"id\": 1,\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:12:59+00:00\",\n        \"updated_at\": \"2026-08-20T10:12:59+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found (unknown UUID)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:order",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":order"
											],
											"variable": [
												{
													"key": "order",
													"value": "ab984891-fe8c-4676-902c-0d5aa3225134",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Cancel Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Customer requested cancellation due to change of plans\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:id/cancel",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":id",
										"cancel"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `admin.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`. If the order has a `paid_amount` > 0, cancelling also credits that amount back to the customer's wallet (never a gateway refund) — see RefundService.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer requested cancellation due to change of plans\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "56bb8eb6-1f51-40fc-95e8-f3033e39d765",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`. If the order has a `paid_amount` > 0, cancelling also credits that amount back to the customer's wallet (never a gateway refund) — see RefundService.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم إلغاء الطلب بنجاح.\",\n    \"data\": {\n        \"id\": 5,\n        \"uuid\": \"56bb8eb6-1f51-40fc-95e8-f3033e39d765\",\n        \"order_number\": \"ORD-260820-KBXU\",\n        \"customer\": {\n            \"id\": 2,\n            \"name\": \"Mr. Cristopher Hahn\",\n            \"email\": \"reed70@example.net\",\n            \"phone\": \"1418821609\"\n        },\n        \"technician\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"assigned_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"branch\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"contract_id\": null,\n        \"address\": {\n            \"id\": 1,\n            \"title\": \"Home\"\n        },\n        \"order_source\": \"job_order\",\n        \"booking_type\": \"scheduled\",\n        \"scheduled_date\": \"2026-08-27\",\n        \"status\": \"cancelled\",\n        \"subtotal_amount\": \"308.34\",\n        \"vat_amount\": \"46.25\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"354.59\",\n        \"paid_amount\": \"0.00\",\n        \"is_auto\": false,\n        \"needs_attention\": false,\n        \"internal_notes\": [],\n        \"items\": [],\n        \"payments\": [],\n        \"attachments\": [],\n        \"status_history\": [\n            {\n                \"id\": 11,\n                \"from_status\": \"pending\",\n                \"to_status\": \"cancelled\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": \"Customer requested cancellation due to change of plans\",\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 10,\n                \"from_status\": \"pending\",\n                \"to_status\": \"cancelled\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 9,\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:12:59+00:00\",\n        \"updated_at\": \"2026-08-20T10:12:59+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Invalid State (already cancelled/finished)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer requested cancellation due to change of plans\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "56bb8eb6-1f51-40fc-95e8-f3033e39d765",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`. If the order has a `paid_amount` > 0, cancelling also credits that amount back to the customer's wallet (never a gateway refund) — see RefundService.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"لم يعد بالإمكان إلغاء هذا الطلب.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Validation Error (missing reason)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Customer requested cancellation due to change of plans\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "56bb8eb6-1f51-40fc-95e8-f3033e39d765",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`. If the order has a `paid_amount` > 0, cancelling also credits that amount back to the customer's wallet (never a gateway refund) — see RefundService.\n\n**Field documentation:**\n### `reason`\n- **Description:** Cancellation Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"حقل Cancellation Reason مطلوب.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reschedule Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:id/reschedule",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":id",
										"reschedule"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"body": {
									"mode": "raw",
									"raw": "{\n    \"scheduled_date\": \"2026-09-01\",\n    \"reason\": \"Customer requested a later time slot\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"description": "**Route:** `admin.orders.reschedule`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed only while the order is in `pending`, `waiting_price`, `priced`, `accepted`, or `on_the_way` — same cutoff as customer self-cancel. Does not change `status`; only `scheduled_date` changes, and `reason` (if given) is recorded internally, not returned in the response.\n\n**Field documentation:**\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string` (date)\n- **Required:** required\n- **Example:** `2026-09-01`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — must be today or later.\n### `reason`\n- **Description:** Reschedule Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Customer requested a later time slot.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/reschedule",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"reschedule"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{order_id}}",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"body": {
											"mode": "raw",
											"raw": "{\n    \"scheduled_date\": \"2026-09-01\",\n    \"reason\": \"Customer requested a later time slot\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"description": "**Route:** `admin.orders.reschedule`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed only while the order is in `pending`, `waiting_price`, `priced`, `accepted`, or `on_the_way` — same cutoff as customer self-cancel. Does not change `status`; only `scheduled_date` changes, and `reason` (if given) is recorded internally, not returned in the response.\n\n**Field documentation:**\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string` (date)\n- **Required:** required\n- **Example:** `2026-09-01`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — must be today or later.\n### `reason`\n- **Description:** Reschedule Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Customer requested a later time slot.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Order rescheduled successfully.\",\n    \"data\": {\n        \"id\": 5,\n        \"uuid\": \"56bb8eb6-1f51-40fc-95e8-f3033e39d765\",\n        \"order_number\": \"ORD-260820-KBXU\",\n        \"status\": \"pending\",\n        \"scheduled_date\": \"2026-09-01\",\n        \"status_history\": []\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid State (order already started/terminal)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/reschedule",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"reschedule"
											],
											"variable": [
												{
													"key": "id",
													"value": "{{order_id}}",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"body": {
											"mode": "raw",
											"raw": "{\n    \"scheduled_date\": \"2026-09-01\",\n    \"reason\": \"Customer requested a later time slot\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"description": "**Route:** `admin.orders.reschedule`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Allowed only while the order is in `pending`, `waiting_price`, `priced`, `accepted`, or `on_the_way` — same cutoff as customer self-cancel. Does not change `status`; only `scheduled_date` changes, and `reason` (if given) is recorded internally, not returned in the response.\n\n**Field documentation:**\n### `scheduled_date`\n- **Description:** Scheduled Date\n- **Type:** `string` (date)\n- **Required:** required\n- **Example:** `2026-09-01`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — must be today or later.\n### `reason`\n- **Description:** Reschedule Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Customer requested a later time slot.`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This order can no longer be rescheduled.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Quote Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"items\": [\n        {\n            \"id\": 2,\n            \"unit_price\": 150.5\n        }\n    ],\n    \"vat_amount\": 45.15,\n    \"fees_amount\": 10\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:id/quote",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":id",
										"quote"
									],
									"variable": [
										{
											"key": "id",
											"value": "b51ed17d-b8d9-4aeb-90f3-c7e3d8eeea25",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `admin.orders.quote`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Only valid when the order's status is `waiting_price` (custom-price requests) — quoting an order in any other status returns a 422. `items[].id` must be an `order_items.id` belonging to THIS order (fetch it from Show Order Details first, NOT the order's own id/uuid). `vat_amount`/`fees_amount` default to the order's existing values when omitted.\n\n**Field documentation:**\n### `items`\n- **Description:** Items\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"id\":1,\"unit_price\":10}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `items.*.id`\n- **Description:** Order Item\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:order_items,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:order_items,id` — must reference an existing record (order_items, id).\n### `items.*.unit_price`\n- **Description:** Unit Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `vat_amount`\n- **Description:** VAT Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `fees_amount`\n- **Description:** Fees Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK (waiting_price → priced)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"items\": [\n        {\n            \"id\": 2,\n            \"unit_price\": 150.5\n        }\n    ],\n    \"vat_amount\": 45.15,\n    \"fees_amount\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/quote",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"quote"
											],
											"variable": [
												{
													"key": "id",
													"value": "b51ed17d-b8d9-4aeb-90f3-c7e3d8eeea25",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.quote`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Only valid when the order's status is `waiting_price` (custom-price requests) — quoting an order in any other status returns a 422. `items[].id` must be an `order_items.id` belonging to THIS order (fetch it from Show Order Details first, NOT the order's own id/uuid). `vat_amount`/`fees_amount` default to the order's existing values when omitted.\n\n**Field documentation:**\n### `items`\n- **Description:** Items\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"id\":1,\"unit_price\":10}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `items.*.id`\n- **Description:** Order Item\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:order_items,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:order_items,id` — must reference an existing record (order_items, id).\n### `items.*.unit_price`\n- **Description:** Unit Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `vat_amount`\n- **Description:** VAT Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `fees_amount`\n- **Description:** Fees Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم تسعير الطلب بنجاح.\",\n    \"data\": {\n        \"id\": 2,\n        \"uuid\": \"b51ed17d-b8d9-4aeb-90f3-c7e3d8eeea25\",\n        \"order_number\": \"ORD-260820-EHSJ\",\n        \"customer\": {\n            \"id\": 2,\n            \"name\": \"Mr. Cristopher Hahn\",\n            \"email\": \"reed70@example.net\",\n            \"phone\": \"1418821609\"\n        },\n        \"technician\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"assigned_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"branch\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"contract_id\": null,\n        \"address\": {\n            \"id\": 1,\n            \"title\": \"Home\"\n        },\n        \"order_source\": \"individual\",\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": null,\n        \"status\": \"priced\",\n        \"subtotal_amount\": \"301.00\",\n        \"vat_amount\": \"45.15\",\n        \"fees_amount\": \"10.00\",\n        \"total_amount\": \"356.15\",\n        \"paid_amount\": \"418.95\",\n        \"is_auto\": false,\n        \"needs_attention\": false,\n        \"internal_notes\": [],\n        \"items\": [\n            {\n                \"id\": 2,\n                \"category_id\": null,\n                \"service_name\": \"pariatur dicta illum\",\n                \"pricing_type\": \"fixed\",\n                \"unit_price\": \"150.50\",\n                \"quantity\": 2,\n                \"line_total\": \"301.00\",\n                \"is_quoted\": true,\n                \"notes\": null,\n                \"request_description\": null,\n                \"request_media_url\": null\n            }\n        ],\n        \"payments\": [],\n        \"attachments\": [],\n        \"status_history\": [\n            {\n                \"id\": 4,\n                \"from_status\": \"waiting_price\",\n                \"to_status\": \"priced\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": \"تم تسعير الطلب بنجاح.\",\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 3,\n                \"from_status\": \"waiting_price\",\n                \"to_status\": \"priced\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 2,\n                \"from_status\": null,\n                \"to_status\": \"waiting_price\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:12:59+00:00\",\n        \"updated_at\": \"2026-08-20T10:12:59+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Invalid State (order not waiting_price)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"items\": [\n        {\n            \"id\": 2,\n            \"unit_price\": 150.5\n        }\n    ],\n    \"vat_amount\": 45.15,\n    \"fees_amount\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/quote",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"quote"
											],
											"variable": [
												{
													"key": "id",
													"value": "b51ed17d-b8d9-4aeb-90f3-c7e3d8eeea25",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.quote`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Only valid when the order's status is `waiting_price` (custom-price requests) — quoting an order in any other status returns a 422. `items[].id` must be an `order_items.id` belonging to THIS order (fetch it from Show Order Details first, NOT the order's own id/uuid). `vat_amount`/`fees_amount` default to the order's existing values when omitted.\n\n**Field documentation:**\n### `items`\n- **Description:** Items\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"id\":1,\"unit_price\":10}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `items.*.id`\n- **Description:** Order Item\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:order_items,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:order_items,id` — must reference an existing record (order_items, id).\n### `items.*.unit_price`\n- **Description:** Unit Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `vat_amount`\n- **Description:** VAT Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `fees_amount`\n- **Description:** Fees Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"يمكن تسعير الطلبات التي تنتظر التسعير فقط.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Validation Error (missing items)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"items\": [\n        {\n            \"id\": 2,\n            \"unit_price\": 150.5\n        }\n    ],\n    \"vat_amount\": 45.15,\n    \"fees_amount\": 10\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/quote",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"quote"
											],
											"variable": [
												{
													"key": "id",
													"value": "b51ed17d-b8d9-4aeb-90f3-c7e3d8eeea25",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.quote`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Only valid when the order's status is `waiting_price` (custom-price requests) — quoting an order in any other status returns a 422. `items[].id` must be an `order_items.id` belonging to THIS order (fetch it from Show Order Details first, NOT the order's own id/uuid). `vat_amount`/`fees_amount` default to the order's existing values when omitted.\n\n**Field documentation:**\n### `items`\n- **Description:** Items\n- **Type:** `array`\n- **Required:** required\n- **Example:** `[{\"id\":1,\"unit_price\":10}]`\n- **Validation rules:** `required|array|min:1`\n- `required` — must be provided.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `items.*.id`\n- **Description:** Order Item\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:order_items,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:order_items,id` — must reference an existing record (order_items, id).\n### `items.*.unit_price`\n- **Description:** Unit Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `vat_amount`\n- **Description:** VAT Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `fees_amount`\n- **Description:** Fees Amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|min:0`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"حقل Items مطلوب.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Status Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"status\": \"accepted\",\n    \"notes\": \"Technician confirmed availability\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:id/status",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":id",
										"status"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `admin.orders.status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Advances the order exactly ONE step forward in the fixed lifecycle `pending → accepted → on_the_way → start → finish → confirmed` — skipping a step, moving backward, or targeting `waiting_price`/`priced`/`cancelled` (those are reached through quote/cancel instead) all return a 422. `notes` is optional and stored on the status-history row.\n\n**Field documentation:**\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** required\n- **Example:** `pending`\n- **Validation rules:** `required|string|in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"` — must be one of: \"pending\", \"waiting_price\", \"priced\", \"accepted\", \"on_the_way\", \"start\", \"finish\", \"confirmed\", \"cancelled\".\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK (pending → accepted)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"status\": \"accepted\",\n    \"notes\": \"Technician confirmed availability\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/status",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"status"
											],
											"variable": [
												{
													"key": "id",
													"value": "bf29cbf3-93c6-4a65-a2d6-20993b2b1d98",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Advances the order exactly ONE step forward in the fixed lifecycle `pending → accepted → on_the_way → start → finish → confirmed` — skipping a step, moving backward, or targeting `waiting_price`/`priced`/`cancelled` (those are reached through quote/cancel instead) all return a 422. `notes` is optional and stored on the status-history row.\n\n**Field documentation:**\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** required\n- **Example:** `pending`\n- **Validation rules:** `required|string|in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"` — must be one of: \"pending\", \"waiting_price\", \"priced\", \"accepted\", \"on_the_way\", \"start\", \"finish\", \"confirmed\", \"cancelled\".\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم تحديث الطلب بنجاح.\",\n    \"data\": {\n        \"id\": 4,\n        \"uuid\": \"bf29cbf3-93c6-4a65-a2d6-20993b2b1d98\",\n        \"order_number\": \"ORD-260820-MXEV\",\n        \"customer\": {\n            \"id\": 2,\n            \"name\": \"Mr. Cristopher Hahn\",\n            \"email\": \"reed70@example.net\",\n            \"phone\": \"1418821609\"\n        },\n        \"technician\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"assigned_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"branch\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"contract_id\": null,\n        \"address\": {\n            \"id\": 1,\n            \"title\": \"Home\"\n        },\n        \"order_source\": \"individual\",\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": \"2026-09-01\",\n        \"status\": \"accepted\",\n        \"subtotal_amount\": \"183.32\",\n        \"vat_amount\": \"27.50\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"210.82\",\n        \"paid_amount\": \"210.82\",\n        \"is_auto\": false,\n        \"needs_attention\": false,\n        \"internal_notes\": [],\n        \"items\": [],\n        \"payments\": [],\n        \"attachments\": [],\n        \"status_history\": [\n            {\n                \"id\": 8,\n                \"from_status\": \"pending\",\n                \"to_status\": \"accepted\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": \"Technician confirmed availability\",\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 7,\n                \"from_status\": \"pending\",\n                \"to_status\": \"accepted\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            },\n            {\n                \"id\": 6,\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:12:59+00:00\",\n        \"updated_at\": \"2026-08-20T10:12:59+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Invalid Transition (skipped a step)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"status\": \"accepted\",\n    \"notes\": \"Technician confirmed availability\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/status",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"status"
											],
											"variable": [
												{
													"key": "id",
													"value": "bf29cbf3-93c6-4a65-a2d6-20993b2b1d98",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Advances the order exactly ONE step forward in the fixed lifecycle `pending → accepted → on_the_way → start → finish → confirmed` — skipping a step, moving backward, or targeting `waiting_price`/`priced`/`cancelled` (those are reached through quote/cancel instead) all return a 422. `notes` is optional and stored on the status-history row.\n\n**Field documentation:**\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** required\n- **Example:** `pending`\n- **Validation rules:** `required|string|in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"` — must be one of: \"pending\", \"waiting_price\", \"priced\", \"accepted\", \"on_the_way\", \"start\", \"finish\", \"confirmed\", \"cancelled\".\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"لا يمكن تغيير الحالة من الحالة الحالية للطلب.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Validation Error (unknown status value)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"status\": \"accepted\",\n    \"notes\": \"Technician confirmed availability\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/status",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"status"
											],
											"variable": [
												{
													"key": "id",
													"value": "bf29cbf3-93c6-4a65-a2d6-20993b2b1d98",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.status`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. Advances the order exactly ONE step forward in the fixed lifecycle `pending → accepted → on_the_way → start → finish → confirmed` — skipping a step, moving backward, or targeting `waiting_price`/`priced`/`cancelled` (those are reached through quote/cancel instead) all return a 422. `notes` is optional and stored on the status-history row.\n\n**Field documentation:**\n### `status`\n- **Description:** Status\n- **Type:** `string`\n- **Required:** required\n- **Example:** `pending`\n- **Validation rules:** `required|string|in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"`\n- `required` — must be provided.\n- `string` — must be text.\n- `in:\"pending\",\"waiting_price\",\"priced\",\"accepted\",\"on_the_way\",\"start\",\"finish\",\"confirmed\",\"cancelled\"` — must be one of: \"pending\", \"waiting_price\", \"priced\", \"accepted\", \"on_the_way\", \"start\", \"finish\", \"confirmed\", \"cancelled\".\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"الحالة المحددة غير صالحة.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "06b. Visits",
					"item": [
						{
							"name": "List All Visits",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/visits?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"visits"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "status",
											"value": "",
											"description": "Filter by exact order status",
											"disabled": true
										},
										{
											"key": "order_source",
											"value": "",
											"description": "Filter by order source",
											"disabled": true
										},
										{
											"key": "customer_id",
											"value": "",
											"description": "Filter to one customer id",
											"disabled": true
										},
										{
											"key": "technician_id",
											"value": "{{technician_id}}",
											"description": "Filter to one technician id",
											"disabled": true
										},
										{
											"key": "needs_attention",
											"value": "1",
											"description": "Show only orders needing attention",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search order_number / customer name / customer email",
											"disabled": true
										},
										{
											"key": "from",
											"value": "",
											"description": "scheduled_date range start (Y-m-d)",
											"disabled": true
										},
										{
											"key": "to",
											"value": "",
											"description": "scheduled_date range end (Y-m-d)",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.orders.visits` (registered via `Route::apiResource('visits', VisitController::class)->only(['index'])->names(['index' => 'admin.orders.visits'])` — named under `admin.orders.*` on purpose so it resolves to the `orders.visits` RBAC permission and is granted to every role that already holds `orders.index`, see `VisitPermissionSeeder`.)\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\nRead-only list (`index` is the only action registered — no show/store/update/destroy) over the same `orders` table used elsewhere, restricted to orders that belong to a contract (`whereNotNull('contract_id')`) — i.e. recurring/contract-scheduled visits rather than ad-hoc one-off requests. Eager-loads `customer`, `technician.user`, `contract`, and `branch`. Orders flagged `needs_attention` (technician rejected/unreachable/timed out) are sorted first, then by newest.\n\n**Payload:**\nNo request body. Use the documented query parameters.\n\n**Query parameters:**\n- `status` — Filter to one exact order status (optional)\n- `order_source` — Filter by order source (optional)\n- `customer_id` — Filter to one customer (optional)\n- `technician_id` — Filter to one technician (optional)\n- `needs_attention` — `1`/`true` to show only orders needing attention (optional)\n- `search` — Matches `order_number`, or customer `name`/`email` (optional)\n- `from` / `to` — Filter by `scheduled_date` range (optional)\n- `per_page` — Items per page, 1–100, default 15 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": []
						}
					]
				},
				{
					"name": "07. Assignments",
					"item": [
						{
							"name": "Assign Technician Order",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"technician_id\": 1\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/orders/:id/assign-technician",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"orders",
										":id",
										"assign-technician"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{order_id}}",
											"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
										}
									]
								},
								"description": "**Route:** `admin.orders.assign-technician`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. `technician_id` is the technician's **profile id** (`technicians.id`, from Admin → Technicians list), NOT the technician's `users.id`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`.\n\n**Field documentation:**\n### `technician_id`\n- **Description:** Technician\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:technicians,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:technicians,id` — must reference an existing record (technicians, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"technician_id\": 1\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/assign-technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"assign-technician"
											],
											"variable": [
												{
													"key": "id",
													"value": "973de10c-65ab-4fc5-92ce-ef31e17d501c",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.assign-technician`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. `technician_id` is the technician's **profile id** (`technicians.id`, from Admin → Technicians list), NOT the technician's `users.id`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`.\n\n**Field documentation:**\n### `technician_id`\n- **Description:** Technician\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:technicians,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:technicians,id` — must reference an existing record (technicians, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"تم تعيين الفني بنجاح.\",\n    \"data\": {\n        \"id\": 3,\n        \"uuid\": \"973de10c-65ab-4fc5-92ce-ef31e17d501c\",\n        \"order_number\": \"ORD-260820-XKPI\",\n        \"customer\": {\n            \"id\": 2,\n            \"name\": \"Mr. Cristopher Hahn\",\n            \"email\": \"reed70@example.net\",\n            \"phone\": \"1418821609\"\n        },\n        \"technician\": {\n            \"id\": 1,\n            \"name\": \"Amber Rogahn PhD\"\n        },\n        \"assigned_by\": {\n            \"id\": 1,\n            \"name\": \"Adriana Schmidt\"\n        },\n        \"branch\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"contract_id\": null,\n        \"address\": {\n            \"id\": 1,\n            \"title\": \"Home\"\n        },\n        \"order_source\": \"job_order\",\n        \"booking_type\": \"instant\",\n        \"scheduled_date\": null,\n        \"status\": \"pending\",\n        \"subtotal_amount\": \"275.10\",\n        \"vat_amount\": \"41.27\",\n        \"fees_amount\": \"0.00\",\n        \"total_amount\": \"316.37\",\n        \"paid_amount\": \"316.37\",\n        \"is_auto\": false,\n        \"needs_attention\": false,\n        \"internal_notes\": [],\n        \"items\": [],\n        \"payments\": [],\n        \"attachments\": [],\n        \"status_history\": [\n            {\n                \"id\": 5,\n                \"from_status\": null,\n                \"to_status\": \"pending\",\n                \"changed_by\": \"Adriana Schmidt\",\n                \"notes\": null,\n                \"created_at\": \"2026-08-20T10:12:59+00:00\"\n            }\n        ],\n        \"rating\": null,\n        \"created_at\": \"2026-08-20T10:12:59+00:00\",\n        \"updated_at\": \"2026-08-20T10:12:59+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Validation Error (unknown technician_id)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"technician_id\": 1\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/orders/:id/assign-technician",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"orders",
												":id",
												"assign-technician"
											],
											"variable": [
												{
													"key": "id",
													"value": "973de10c-65ab-4fc5-92ce-ef31e17d501c",
													"description": "Order UUID (orders.uuid) — NOT the numeric orders.id. Copy the `uuid` field from a List/Show response."
												}
											]
										},
										"description": "**Route:** `admin.orders.assign-technician`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`. `technician_id` is the technician's **profile id** (`technicians.id`, from Admin → Technicians list), NOT the technician's `users.id`. Allowed for any order not yet in `finish`, `confirmed`, or `cancelled`.\n\n**Field documentation:**\n### `technician_id`\n- **Description:** Technician\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:technicians,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:technicians,id` — must reference an existing record (technicians, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Technician المحدد غير صالح.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "08. Contracts",
					"item": [
						{
							"name": "List All Contracts",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contracts retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"contract_number\": \"CTR-2026-000001\",\n                \"company\": {\n                    \"id\": 19,\n                    \"name\": \"Bennie Strosin\"\n                },\n                \"start_date\": \"2026-08-20\",\n                \"end_date\": \"2026-09-20\",\n                \"billing_cycle\": \"monthly\",\n                \"visits_allowed\": 10,\n                \"visits_consumed\": 0,\n                \"remaining_visits\": 10,\n                \"total_amount\": \"1000.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"pending_signature\",\n                \"status_label\": \"Pending Signature\",\n                \"auto_renew\": false,\n                \"signed_at\": null,\n                \"approved_at\": null,\n                \"created_at\": \"2026-08-20T12:09:43+00:00\"\n            },\n            {\n                \"id\": 2,\n                \"contract_number\": \"CTR-2026-000002\",\n                \"company\": {\n                    \"id\": 19,\n                    \"name\": \"Bennie Strosin\"\n                },\n                \"start_date\": \"2026-08-20\",\n                \"end_date\": \"2026-09-20\",\n                \"billing_cycle\": \"monthly\",\n                \"visits_allowed\": 10,\n                \"visits_consumed\": 0,\n                \"remaining_visits\": 10,\n                \"total_amount\": \"1000.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"auto_renew\": false,\n                \"signed_at\": null,\n                \"approved_at\": null,\n                \"created_at\": \"2026-08-20T12:09:43+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/contracts?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/contracts?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/contracts?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/contracts\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status=active",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contracts retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 2,\n                \"contract_number\": \"CTR-2026-000002\",\n                \"company\": {\n                    \"id\": 19,\n                    \"name\": \"Bennie Strosin\"\n                },\n                \"start_date\": \"2026-08-20\",\n                \"end_date\": \"2026-09-20\",\n                \"billing_cycle\": \"monthly\",\n                \"visits_allowed\": 10,\n                \"visits_consumed\": 0,\n                \"remaining_visits\": 10,\n                \"total_amount\": \"1000.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"active\",\n                \"status_label\": \"Active\",\n                \"auto_renew\": false,\n                \"signed_at\": null,\n                \"approved_at\": null,\n                \"created_at\": \"2026-08-20T12:09:43+00:00\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/contracts?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/contracts?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/contracts?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/contracts\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contracts.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Contract Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":contract"
									],
									"variable": [
										{
											"key": "contract",
											"value": "1",
											"description": "Contract ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "4",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract retrieved successfully.\",\n    \"data\": {\n        \"id\": 4,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 24,\n            \"name\": \"Bryce Hoeger\",\n            \"email\": \"westley.keeling@example.net\"\n        },\n        \"created_by\": {\n            \"id\": 24,\n            \"name\": \"Bryce Hoeger\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_signature\",\n        \"status_label\": \"Pending Signature\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "4",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"company_id\": 10,\n    \"start_date\": \"2026-08-21\",\n    \"end_date\": \"2027-08-20\",\n    \"billing_cycle\": \"monthly\",\n    \"visits_allowed\": 12,\n    \"total_amount\": 960,\n    \"currency\": \"SAR\",\n    \"branch_ids\": [\n        1\n    ],\n    \"service_ids\": [\n        2\n    ],\n    \"notes\": \"Annual maintenance contract\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts"
									]
								},
								"description": "**Route:** `admin.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after:start_date`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - contract created (status=draft)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 21,\n    \"start_date\": \"2026-08-21\",\n    \"end_date\": \"2027-08-20\",\n    \"billing_cycle\": \"monthly\",\n    \"visits_allowed\": 12,\n    \"total_amount\": 960,\n    \"currency\": \"SAR\",\n    \"branch_ids\": [\n        5\n    ],\n    \"service_ids\": [\n        13\n    ],\n    \"notes\": \"Annual maintenance contract\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											]
										},
										"description": "**Route:** `admin.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after:start_date`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract created successfully.\",\n    \"data\": {\n        \"id\": 3,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 21,\n            \"name\": \"Mr. Hugh Jast\",\n            \"email\": \"michele03@example.org\"\n        },\n        \"created_by\": {\n            \"id\": 20,\n            \"name\": \"Danielle Moore\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-21\",\n        \"end_date\": \"2027-08-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 12,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 12,\n        \"total_amount\": \"960.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"draft\",\n        \"status_label\": \"Draft\",\n        \"auto_renew\": null,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": \"Annual maintenance contract\",\n        \"branches\": [\n            {\n                \"id\": 5,\n                \"name\": \"Main Branch\"\n            }\n        ],\n        \"services\": [\n            {\n                \"id\": 13,\n                \"name\": \"AC Repair\"\n            }\n        ],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (missing required fields, bad billing_cycle)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 21,\n    \"start_date\": \"2026-08-21\",\n    \"end_date\": \"2027-08-20\",\n    \"billing_cycle\": \"monthly\",\n    \"visits_allowed\": 12,\n    \"total_amount\": 960,\n    \"currency\": \"SAR\",\n    \"branch_ids\": [\n        5\n    ],\n    \"service_ids\": [\n        13\n    ],\n    \"notes\": \"Annual maintenance contract\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											]
										},
										"description": "**Route:** `admin.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after:start_date`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The company id field is required. (and 5 more errors)\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 21,\n    \"start_date\": \"2026-08-21\",\n    \"end_date\": \"2027-08-20\",\n    \"billing_cycle\": \"monthly\",\n    \"visits_allowed\": 12,\n    \"total_amount\": 960,\n    \"currency\": \"SAR\",\n    \"branch_ids\": [\n        5\n    ],\n    \"service_ids\": [\n        13\n    ],\n    \"notes\": \"Annual maintenance contract\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts"
											]
										},
										"description": "**Route:** `admin.contracts.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after_or_equal:today`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** required\n- **Example:** `2026-08-21`\n- **Validation rules:** `required|date|after:start_date`\n- `required` — must be provided.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** required\n- **Example:** `monthly`\n- **Validation rules:** `required|in:monthly,quarterly,annual`\n- `required` — must be provided.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|min:1`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"total_amount\": 1200,\n    \"notes\": \"Updated notes\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":contract"
									],
									"variable": [
										{
											"key": "contract",
											"value": "1",
											"description": "Contract ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after_or_equal:today`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after:start_date`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `monthly`\n- **Validation rules:** `sometimes|in:monthly,quarterly,annual`\n- `sometimes` — validated only when the field is present.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|min:0`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - draft contract updated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"total_amount\": 1200,\n    \"notes\": \"Updated notes\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "5",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after_or_equal:today`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after:start_date`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `monthly`\n- **Validation rules:** `sometimes|in:monthly,quarterly,annual`\n- `sometimes` — validated only when the field is present.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|min:0`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract updated successfully.\",\n    \"data\": {\n        \"id\": 5,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 26,\n            \"name\": \"Mariane Blick\",\n            \"email\": \"wsimonis@example.com\"\n        },\n        \"created_by\": {\n            \"id\": 26,\n            \"name\": \"Mariane Blick\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1200.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"draft\",\n        \"status_label\": \"Draft\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": \"Updated notes\",\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - active contract can no longer be edited (canBeEdited() only allows draft/pending_signature)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"total_amount\": 1200,\n    \"notes\": \"Updated notes\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "5",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after_or_equal:today`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after:start_date`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `monthly`\n- **Validation rules:** `sometimes|in:monthly,quarterly,annual`\n- `sometimes` — validated only when the field is present.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|min:0`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract can no longer be edited.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"total_amount\": 1200,\n    \"notes\": \"Updated notes\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "5",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company id\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `service_ids`\n- **Description:** Service ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[2]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `service_ids.*`\n- **Description:** Service ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `2`\n- **Validation rules:** `exists:categories,id`\n- `exists:categories,id` — must reference an existing record (categories, id).\n### `branch_ids`\n- **Description:** Branch ids\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `sometimes|array|min:1`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n- `min:1` — must be at least 1.\n### `branch_ids.*`\n- **Description:** Branch ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:branches,id`\n- `exists:branches,id` — must reference an existing record (branches, id).\n### `start_date`\n- **Description:** Start date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after_or_equal:today`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after_or_equal:today` — custom validation rule.\n### `end_date`\n- **Description:** End date\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `2026-08-21`\n- **Validation rules:** `sometimes|date|after:start_date`\n- `sometimes` — validated only when the field is present.\n- `date` — must be a valid date.\n- `after:start_date` — custom validation rule.\n### `billing_cycle`\n- **Description:** Billing cycle\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `monthly`\n- **Validation rules:** `sometimes|in:monthly,quarterly,annual`\n- `sometimes` — validated only when the field is present.\n- `in:monthly,quarterly,annual` — must be one of: monthly, quarterly, annual.\n### `visits_allowed`\n- **Description:** Visits allowed\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|min:1`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `min:1` — must be at least 1.\n### `total_amount`\n- **Description:** Total amount\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|min:0`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `min:0` — must be at least .\n### `currency`\n- **Description:** Currency\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|size:3`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `size:3` — custom validation rule.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:1000`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Approve Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:id/approve",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":id",
										"approve"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - pending_approval to active",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "14",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract approved successfully.\",\n    \"data\": {\n        \"id\": 14,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 43,\n            \"name\": \"Araceli Miller V\",\n            \"email\": \"okeefe.keegan@example.org\"\n        },\n        \"created_by\": {\n            \"id\": 43,\n            \"name\": \"Araceli Miller V\"\n        },\n        \"approved_by\": {\n            \"id\": 42,\n            \"name\": \"Joelle Beahan\"\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"active\",\n        \"status_label\": \"Active\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": \"2026-08-20T12:09:44+00:00\",\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - already active, not pending_approval",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "14",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract is not pending approval.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/approve",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"approve"
											],
											"variable": [
												{
													"key": "id",
													"value": "14",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.approve`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reject Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":id",
										"reject"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - pending_approval to rejected",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "16",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract rejected successfully.\",\n    \"data\": {\n        \"id\": 16,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 48,\n            \"name\": \"Angelo Rosenbaum\",\n            \"email\": \"alana63@example.org\"\n        },\n        \"created_by\": {\n            \"id\": 48,\n            \"name\": \"Angelo Rosenbaum\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"rejected\",\n        \"status_label\": \"Rejected\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": \"Missing required signatures on branch documentation\",\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - pending_signature to rejected",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "16",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract rejected successfully.\",\n    \"data\": {\n        \"id\": 17,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 50,\n            \"name\": \"Prof. Albertha Gottlieb III\",\n            \"email\": \"alisa.renner@example.com\"\n        },\n        \"created_by\": {\n            \"id\": 50,\n            \"name\": \"Prof. Albertha Gottlieb III\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"rejected\",\n        \"status_label\": \"Rejected\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": \"Company withdrew the request\",\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - active contract cannot be rejected",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "16",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be rejected in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (reason required, inline $request->validate())",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "16",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Missing required signatures on branch documentation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/reject",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"reject"
											],
											"variable": [
												{
													"key": "id",
													"value": "16",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.reject`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Does not meet platform requirements.`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Renewal Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":id",
										"renewal",
										":action"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										},
										{
											"key": "action",
											"value": "approve",
											"description": "Action ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** on approval, `renewalAction()` correctly creates the new contract and expires the old one in the database, but the response is built from `$contract` (the OLD, now-expired contract) instead of `$newContract` — `ContractDetailsResource::make($contract)` on line 328 refreshes and returns the wrong entity, so the client has no way to see the new active contract's id/details from this response. See `app/Services/Admin/ContractService.php:277-328`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - BUG (see report): a new active contract IS created in the DB and the old one IS expired, but the response body echoes the OLD (now-expired) contract's data, not the new contract — ContractService::renewalAction() builds",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Renewal approved successfully.\",\n    \"data\": {\n        \"id\": 23,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 64,\n            \"name\": \"Lila McGlynn\",\n            \"email\": \"nicolas.audie@example.com\"\n        },\n        \"created_by\": {\n            \"id\": 64,\n            \"name\": \"Lila McGlynn\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-08-25\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"expired\",\n        \"status_label\": \"Expired\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [\n            {\n                \"id\": 1,\n                \"status\": \"approved\",\n                \"note\": \"Please renew for another year\",\n                \"new_contract_id\": 24,\n                \"requested_by\": \"Lila McGlynn\",\n                \"handled_by\": \"Javier Kuvalis\",\n                \"created_at\": \"2026-08-20T12:09:44+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - renewal rejected, contract status unchanged",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Renewal rejected successfully.\",\n    \"data\": {\n        \"id\": 25,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 66,\n            \"name\": \"Jeromy Jaskolski\",\n            \"email\": \"johns.tomasa@example.org\"\n        },\n        \"created_by\": {\n            \"id\": 66,\n            \"name\": \"Jeromy Jaskolski\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"pending_renewal\",\n        \"status_label\": \"Pending Renewal\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": null,\n        \"terminated_reason\": null,\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [\n            {\n                \"id\": 2,\n                \"status\": \"rejected\",\n                \"note\": null,\n                \"new_contract_id\": null,\n                \"requested_by\": \"Jeromy Jaskolski\",\n                \"handled_by\": \"Carolyne Greenfelder\",\n                \"created_at\": \"2026-08-20T12:09:44+00:00\"\n            }\n        ],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - invalid action segment (not 'approve'/'reject')",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"message\": \"Invalid action\"\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - contract is not pending_renewal",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract is not pending renewal.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - no pending renewal request row found despite status=pending_renewal",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"No pending renewal request found.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - contract not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/renewal/:action",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"renewal",
												":action"
											],
											"variable": [
												{
													"key": "id",
													"value": "23",
													"description": "Id ID"
												},
												{
													"key": "action",
													"value": "23",
													"description": "Action ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.renewal`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Terminate Contract",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Company requested early termination due to relocation\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:id/terminate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":id",
										"terminate"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.terminate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - active to terminated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Company requested early termination due to relocation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/terminate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"terminate"
											],
											"variable": [
												{
													"key": "id",
													"value": "20",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.terminate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract terminated successfully.\",\n    \"data\": {\n        \"id\": 20,\n        \"contract_number\": \"CTR-2026-000001\",\n        \"company\": {\n            \"id\": 57,\n            \"name\": \"Prof. Diana Abernathy\",\n            \"email\": \"collins.madonna@example.com\"\n        },\n        \"created_by\": {\n            \"id\": 57,\n            \"name\": \"Prof. Diana Abernathy\"\n        },\n        \"approved_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"signed_by\": {\n            \"id\": null,\n            \"name\": null\n        },\n        \"start_date\": \"2026-08-20\",\n        \"end_date\": \"2026-09-20\",\n        \"billing_cycle\": \"monthly\",\n        \"visits_allowed\": 10,\n        \"visits_consumed\": 0,\n        \"remaining_visits\": 10,\n        \"total_amount\": \"1000.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"terminated\",\n        \"status_label\": \"Terminated\",\n        \"auto_renew\": false,\n        \"pdf_path\": null,\n        \"signed_pdf_path\": null,\n        \"signed_at\": null,\n        \"approved_at\": null,\n        \"terminated_at\": \"2026-08-20T12:09:44+00:00\",\n        \"terminated_reason\": \"Company requested early termination due to relocation\",\n        \"notes\": null,\n        \"branches\": [],\n        \"services\": [],\n        \"signatures\": [],\n        \"renewal_requests\": [],\n        \"created_at\": \"2026-08-20T12:09:44+00:00\",\n        \"updated_at\": \"2026-08-20T12:09:44+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - draft contract cannot be terminated (only active can)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Company requested early termination due to relocation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/terminate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"terminate"
											],
											"variable": [
												{
													"key": "id",
													"value": "20",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.terminate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be terminated in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (reason required, via TerminateContractRequest)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Company requested early termination due to relocation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/terminate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"terminate"
											],
											"variable": [
												{
													"key": "id",
													"value": "20",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.terminate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Company requested early termination due to relocation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:id/terminate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":id",
												"terminate"
											],
											"variable": [
												{
													"key": "id",
													"value": "20",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.terminate`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Contract",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										":contract"
									],
									"variable": [
										{
											"key": "contract",
											"value": "1",
											"description": "Contract ID"
										}
									]
								},
								"description": "**Route:** `admin.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - draft contract deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - active contract cannot be deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be deleted in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/:contract",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												":contract"
											],
											"variable": [
												{
													"key": "contract",
													"value": "1",
													"description": "Contract ID"
												}
											]
										},
										"description": "**Route:** `admin.contracts.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contracts/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contracts",
										"bulk"
									]
								},
								"description": "**Route:** `admin.contracts.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - both deletable contracts deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contracts.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Contract deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - all-or-nothing: one active contract in the batch rejects the whole request",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contracts.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Contract cannot be deleted in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - one of the requested ids does not exist",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contracts.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - validation error (empty ids array)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contracts/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contracts",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contracts.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "09. Wallets",
					"item": [
						{
							"name": "List All Wallets",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.wallets.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list wallets",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.wallets.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallets retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"user\": {\n                    \"id\": 2,\n                    \"name\": \"Sara Al-Fahad\",\n                    \"email\": \"cristopher.ullrich@example.net\",\n                    \"user_type\": \"individual\"\n                },\n                \"balance\": \"350.75\",\n                \"currency\": \"SAR\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/wallets?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/wallets?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/wallets?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/wallets\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by min_balance",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.wallets.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallets retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"user\": {\n                    \"id\": 2,\n                    \"name\": \"Sara Al-Fahad\",\n                    \"email\": \"cristopher.ullrich@example.net\",\n                    \"user_type\": \"individual\"\n                },\n                \"balance\": \"350.75\",\n                \"currency\": \"SAR\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/wallets?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/wallets?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/wallets?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/wallets\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.wallets.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Wallet Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - wallet with transactions",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"user\": {\n            \"id\": 2,\n            \"name\": \"Sara Al-Fahad\",\n            \"email\": \"cristopher.ullrich@example.net\",\n            \"user_type\": \"individual\"\n        },\n        \"balance\": \"350.75\",\n        \"currency\": \"SAR\",\n        \"created_at\": \"2026-08-20 12:10:23\",\n        \"transactions\": [\n            {\n                \"id\": 1,\n                \"type\": \"refund_credit\",\n                \"type_label\": \"Refund from cancelled order\",\n                \"amount\": \"100.00\",\n                \"balance_after\": \"350.75\",\n                \"status\": \"completed\",\n                \"notes\": \"Refund from cancelled order\",\n                \"related_order_id\": null,\n                \"related_withdraw_request_id\": null,\n                \"created_by\": \"Crystel Eichmann\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            },\n            {\n                \"id\": 2,\n                \"type\": \"order_debit\",\n                \"type_label\": \"Wallet-funded booking\",\n                \"amount\": \"50.00\",\n                \"balance_after\": \"300.75\",\n                \"status\": \"completed\",\n                \"notes\": \"Wallet balance applied to order\",\n                \"related_order_id\": null,\n                \"related_withdraw_request_id\": null,\n                \"created_by\": \"Sara Al-Fahad\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            }\n        ],\n        \"updated_at\": \"2026-08-20 12:10:23\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Block Refund Wallet",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"order_id\": 1,\n    \"reason\": \"Manual adjustment by admin.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/block-refund",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"block-refund"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.block-refund`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `order_id`\n- **Description:** Order\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:orders,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:orders,id` — must reference an existing record (orders, id).\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `BlockRefundRequest` validates `order_id` as `integer|exists:orders,id`, but `WalletService::blockRefund()` queries `WalletTransaction::where('related_order_id', $orderId)` — and `related_order_id` is always populated with the order's **uuid** (see `RefundService`), never the integer id. The lookup can never match a real order; this endpoint 404s on every legitimate request. See `app/Services/Admin/WalletService.php:195-207` and `app/Http/Requests/Admin/Wallet/BlockRefundRequest.php:14`."
							},
							"response": [
								{
									"name": "Example Response — 404 Not Found: BUG - realistic order_id (integer id) never matches, always 404s (see bug report)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"order_id\": 1,\n    \"reason\": \"Manual adjustment by admin.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/block-refund",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"block-refund"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.block-refund`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `order_id`\n- **Description:** Order\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:orders,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:orders,id` — must reference an existing record (orders, id).\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Refund blocked — order not eligible\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - order_id does not exist",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"order_id\": 1,\n    \"reason\": \"Manual adjustment by admin.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/block-refund",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"block-refund"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.block-refund`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `order_id`\n- **Description:** Order\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:orders,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:orders,id` — must reference an existing record (orders, id).\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected order does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing reason",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"order_id\": 1,\n    \"reason\": \"Manual adjustment by admin.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/block-refund",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"block-refund"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.block-refund`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `order_id`\n- **Description:** Order\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:orders,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:orders,id` — must reference an existing record (orders, id).\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - wallet not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"order_id\": 1,\n    \"reason\": \"Manual adjustment by admin.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/block-refund",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"block-refund"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.block-refund`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `order_id`\n- **Description:** Order\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:orders,id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:orders,id` — must reference an existing record (orders, id).\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Credit Wallet",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"credit"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `WalletService::credit()` only checks `isBalanceMutable()` (which guards account type — in-house vs. freelance technician) and never checks `is_locked`. A wallet locked via `admin.wallets.lock` can still be credited, defeating the purpose of locking it. See `app/Services/Admin/WalletService.php:124-130` and `app/Models/Wallet.php:116-119`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - credited",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallet credited successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"user_id\": 2,\n        \"balance\": \"426.25\",\n        \"currency\": \"SAR\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - negative amount",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Amount must be at least 0.01.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - zero amount",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Amount must be at least 0.01.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing amount",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter the amount.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: ATTEMPT - credit by user_id when no wallet row exists (see bug report)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: ATTEMPT - credit a locked wallet (see bug report re: is_locked not checked)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"amount\": 75.5,\n    \"reason\": \"Goodwill credit for delayed service\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/credit",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"credit"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.credit`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `amount`\n- **Description:** Amount\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|min:0.01|max:999999.99`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `min:0.01` — must be at least 0.01.\n- `max:999999.99` — must not exceed 999999.99.\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `sometimes|nullable|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallet credited successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"user_id\": 6,\n        \"balance\": \"200.00\",\n        \"currency\": \"SAR\"\n    }\n}"
								}
							]
						},
						{
							"name": "Lock Wallet",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/lock",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"lock"
									],
									"variable": [
										{
											"key": "id",
											"value": "4",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.lock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - locked",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/lock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"lock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.lock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Your wallet is currently locked. Please contact support.\",\n    \"data\": {\n        \"id\": 4,\n        \"user_id\": 6,\n        \"balance\": \"150.00\",\n        \"currency\": \"SAR\",\n        \"is_locked\": true,\n        \"created_at\": \"2026-08-20T12:10:23.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:23.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - lock an already-locked wallet (no guard, idempotent)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/lock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"lock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.lock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Your wallet is currently locked. Please contact support.\",\n    \"data\": {\n        \"id\": 4,\n        \"user_id\": 6,\n        \"balance\": \"150.00\",\n        \"currency\": \"SAR\",\n        \"is_locked\": true,\n        \"created_at\": \"2026-08-20T12:10:23.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:23.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/lock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"lock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.lock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Transactions Wallet",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/transactions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"transactions"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list transactions",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"transactions"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"type\": \"refund_credit\",\n                \"type_label\": \"Refund from cancelled order\",\n                \"amount\": \"100.00\",\n                \"balance_after\": \"350.75\",\n                \"status\": \"completed\",\n                \"notes\": \"Refund from cancelled order\",\n                \"related_order_id\": null,\n                \"related_withdraw_request_id\": null,\n                \"created_by\": \"Crystel Eichmann\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            },\n            {\n                \"id\": 2,\n                \"type\": \"order_debit\",\n                \"type_label\": \"Wallet-funded booking\",\n                \"amount\": \"50.00\",\n                \"balance_after\": \"300.75\",\n                \"status\": \"completed\",\n                \"notes\": \"Wallet balance applied to order\",\n                \"related_order_id\": null,\n                \"related_withdraw_request_id\": null,\n                \"created_by\": \"Sara Al-Fahad\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/wallets/1/transactions\",\n            \"per_page\": 20,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by type=order_debit",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"transactions"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Transactions retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 2,\n                \"type\": \"order_debit\",\n                \"type_label\": \"Wallet-funded booking\",\n                \"amount\": \"50.00\",\n                \"balance_after\": \"300.75\",\n                \"status\": \"completed\",\n                \"notes\": \"Wallet balance applied to order\",\n                \"related_order_id\": null,\n                \"related_withdraw_request_id\": null,\n                \"created_by\": \"Sara Al-Fahad\",\n                \"created_at\": \"2026-08-20 12:10:23\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/wallets/1/transactions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/wallets/1/transactions\",\n            \"per_page\": 20,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid type",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/transactions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"transactions"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.transactions`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected type is invalid.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Unlock Wallet",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/unlock",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"unlock"
									],
									"variable": [
										{
											"key": "id",
											"value": "4",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.unlock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - unlocked",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/unlock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"unlock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.unlock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallet has been unlocked successfully.\",\n    \"data\": {\n        \"id\": 4,\n        \"user_id\": 6,\n        \"balance\": \"150.00\",\n        \"currency\": \"SAR\",\n        \"is_locked\": false,\n        \"created_at\": \"2026-08-20T12:10:23.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:23.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - unlock an already-unlocked wallet (idempotent)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/unlock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"unlock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.unlock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallet has been unlocked successfully.\",\n    \"data\": {\n        \"id\": 4,\n        \"user_id\": 6,\n        \"balance\": \"150.00\",\n        \"currency\": \"SAR\",\n        \"is_locked\": false,\n        \"created_at\": \"2026-08-20T12:10:23.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:23.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/unlock",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"unlock"
											],
											"variable": [
												{
													"key": "id",
													"value": "4",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.unlock`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Zero Out Wallet",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reason\": \"Fraudulent balance under investigation\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/wallets/:id/zero-out",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"wallets",
										":id",
										"zero-out"
									],
									"variable": [
										{
											"key": "id",
											"value": "2",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.wallets.zero-out`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same gap as `credit` — `zeroOut()` also only checks `isBalanceMutable()`, not `is_locked`, so a locked wallet's balance can still be zeroed out."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - zeroed",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Fraudulent balance under investigation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/zero-out",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"zero-out"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.zero-out`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Wallet balance reset to zero successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"user_id\": 4,\n        \"balance\": \"0.00\",\n        \"currency\": \"SAR\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - already zero",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Fraudulent balance under investigation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/zero-out",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"zero-out"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.zero-out`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Wallet balance is already zero\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing reason",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Fraudulent balance under investigation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/zero-out",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"zero-out"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.zero-out`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reason field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reason\": \"Fraudulent balance under investigation\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/wallets/:id/zero-out",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"wallets",
												":id",
												"zero-out"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.wallets.zero-out`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reason`\n- **Description:** Reason\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Manual adjustment by admin.`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "10. Invoices",
					"item": [
						{
							"name": "List All Invoices",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/invoices?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"invoices"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoices retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"invoice_number\": \"INV-2026-000001\",\n                \"contract_number\": \"CTR-2026-000001\",\n                \"company\": {\n                    \"id\": 75,\n                    \"name\": \"Amber White\"\n                },\n                \"sequence_no\": 1,\n                \"total_invoices\": null,\n                \"amount_due\": \"500.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"issued\",\n                \"issue_date\": \"2026-08-20\",\n                \"due_date\": \"2026-09-04\"\n            },\n            {\n                \"id\": 2,\n                \"invoice_number\": \"INV-2026-000002\",\n                \"contract_number\": \"CTR-2026-000001\",\n                \"company\": {\n                    \"id\": 75,\n                    \"name\": \"Amber White\"\n                },\n                \"sequence_no\": 2,\n                \"total_invoices\": null,\n                \"amount_due\": \"500.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"paid\",\n                \"issue_date\": \"2026-08-20\",\n                \"due_date\": \"2026-09-04\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/invoices?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/invoices?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/invoices?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/invoices\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filtered by status=paid",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoices retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 2,\n                \"invoice_number\": \"INV-2026-000002\",\n                \"contract_number\": \"CTR-2026-000001\",\n                \"company\": {\n                    \"id\": 75,\n                    \"name\": \"Amber White\"\n                },\n                \"sequence_no\": 2,\n                \"total_invoices\": null,\n                \"amount_due\": \"500.00\",\n                \"currency\": \"SAR\",\n                \"status\": \"paid\",\n                \"issue_date\": \"2026-08-20\",\n                \"due_date\": \"2026-09-04\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/invoices?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/invoices?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/invoices?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/invoices\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.invoices.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Invoice Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/invoices/:invoice",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"invoices",
										":invoice"
									],
									"variable": [
										{
											"key": "invoice",
											"value": "3",
											"description": "Invoice ID"
										}
									]
								},
								"description": "**Route:** `admin.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:invoice",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":invoice"
											],
											"variable": [
												{
													"key": "invoice",
													"value": "3",
													"description": "Invoice ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoice retrieved successfully.\",\n    \"data\": {\n        \"id\": 3,\n        \"invoice_number\": \"INV-2026-000001\",\n        \"contract\": {\n            \"id\": 30,\n            \"contract_number\": \"CTR-2026-000001\",\n            \"total_amount\": \"1000.00\",\n            \"total_invoices_count\": null\n        },\n        \"company\": {\n            \"id\": 77,\n            \"name\": \"Britney Willms\"\n        },\n        \"sequence_no\": 1,\n        \"period_start\": \"2026-08-01\",\n        \"period_end\": \"2026-08-31\",\n        \"amount_due\": \"500.00\",\n        \"amount_paid\": \"0.00\",\n        \"currency\": \"SAR\",\n        \"status\": \"issued\",\n        \"issue_date\": \"2026-08-20\",\n        \"due_date\": \"2026-09-04\",\n        \"pdf_path\": null,\n        \"line_items\": [\n            {\n                \"id\": 1,\n                \"description\": \"Monthly installment\",\n                \"amount\": \"500.00\"\n            }\n        ],\n        \"created_at\": \"2026-08-20T12:09:45+00:00\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:invoice",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":invoice"
											],
											"variable": [
												{
													"key": "invoice",
													"value": "3",
													"description": "Invoice ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Cancel Invoice",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"invoices",
										":id",
										"cancel"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - issued invoice cancelled",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoice cancelled successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - overdue invoice cancelled",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Invoice cancelled successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - paid invoice cannot be cancelled (money already changed hands)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invoice cannot be cancelled in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - already cancelled invoice cannot be cancelled again",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invoice cannot be cancelled in its current state.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - not found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/invoices/:id/cancel",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"invoices",
												":id",
												"cancel"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.invoices.cancel`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "11. Notifications (Admin Send)",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list notifications",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": \"4da51c94-964f-454b-bef2-d01caa25e3b2\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 87,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"74069fb7-bcc4-469e-9cb2-3099759d6c60\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 94,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"Please update your profile information.\",\n                    \"payload\": {\n                        \"title\": \"Account Update\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"776af4d9-1319-4911-8690-348b874e2587\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 92,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"787a25ec-0aee-45f6-adf1-173689ee94b0\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 89,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"7f6c50da-93d5-457a-8d6c-e4cbe2060489\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 94,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"a146e7fb-5abf-4937-98fb-a165004856ce\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 88,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"a5e3be08-4757-4690-94db-a55247fd326c\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 93,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"Please update your profile information.\",\n                    \"payload\": {\n                        \"title\": \"Account Update\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"c631e616-9ecb-41ba-a83e-c2a4947f2aae\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 90,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"c6ec7f0d-933c-4fdb-8431-245015e9509e\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 93,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": \"f61b07bc-0384-486a-95a2-0a8d21f55251\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 91,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/admin/notifications?page=1\",\n        \"from\": 1,\n        \"last_page\": 1,\n        \"last_page_url\": \"http://localhost/api/v1/admin/notifications?page=1\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": null,\n        \"path\": \"http://localhost/api/v1/admin/notifications\",\n        \"per_page\": 15,\n        \"prev_page_url\": null,\n        \"to\": 10,\n        \"total\": 10\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - list notifications with per_page",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": \"4da51c94-964f-454b-bef2-d01caa25e3b2\",\n                \"admin_notification_id\": null,\n                \"notifiable_type\": \"App\\\\Models\\\\User\",\n                \"notifiable_id\": 87,\n                \"type\": \"App\\\\Notifications\\\\GeneralNotification\",\n                \"data\": {\n                    \"notification_type\": \"general\",\n                    \"notify_id\": \"broadcast\",\n                    \"message\": \"The platform will be down for maintenance tonight.\",\n                    \"payload\": {\n                        \"title\": \"Platform Maintenance\",\n                        \"channels\": null,\n                        \"meta\": {\n                            \"notification_type\": \"general\"\n                        }\n                    }\n                },\n                \"read_at\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/admin/notifications?page=1\",\n        \"from\": 1,\n        \"last_page\": 10,\n        \"last_page_url\": \"http://localhost/api/v1/admin/notifications?page=10\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=2\",\n                \"label\": \"2\",\n                \"page\": 2,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=3\",\n                \"label\": \"3\",\n                \"page\": 3,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=4\",\n                \"label\": \"4\",\n                \"page\": 4,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=5\",\n                \"label\": \"5\",\n                \"page\": 5,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=6\",\n                \"label\": \"6\",\n                \"page\": 6,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=7\",\n                \"label\": \"7\",\n                \"page\": 7,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=8\",\n                \"label\": \"8\",\n                \"page\": 8,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=9\",\n                \"label\": \"9\",\n                \"page\": 9,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=10\",\n                \"label\": \"10\",\n                \"page\": 10,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/notifications?page=2\",\n                \"label\": \"Next &raquo;\",\n                \"page\": 2,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": \"http://localhost/api/v1/admin/notifications?page=2\",\n        \"path\": \"http://localhost/api/v1/admin/notifications\",\n        \"per_page\": 1,\n        \"prev_page_url\": null,\n        \"to\": 1,\n        \"total\": 10\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Notification",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"title\": \"Platform Maintenance\",\n    \"body\": \"The platform will be down for maintenance tonight.\",\n    \"target\": \"broadcast\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/notifications/send",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"notifications",
										"send"
									]
								},
								"description": "**Route:** `admin.notifications.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `body`\n- **Description:** Message Body\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:1000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `target`\n- **Description:** Target\n- **Type:** `string`\n- **Required:** required\n- **Example:** `broadcast`\n- **Validation rules:** `required|in:broadcast,targeted`\n- `required` — must be provided.\n- `in:broadcast,targeted` — must be one of: broadcast, targeted.\n### `user_ids`\n- **Description:** User IDs\n- **Type:** `array`\n- **Required:** conditional\n- **Example:** `[1]`\n- **Validation rules:** `required_if:target,targeted|array`\n- `required_if:target,targeted` — required when target, targeted.\n- `array` — must be an array.\n### `user_ids.*`\n- **Description:** User ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:users,id`\n- `integer` — must be a whole number.\n- `exists:users,id` — must reference an existing record (users, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - broadcast notification",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Platform Maintenance\",\n    \"body\": \"The platform will be down for maintenance tonight.\",\n    \"target\": \"broadcast\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications/send",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications",
												"send"
											]
										},
										"description": "**Route:** `admin.notifications.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `body`\n- **Description:** Message Body\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:1000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `target`\n- **Description:** Target\n- **Type:** `string`\n- **Required:** required\n- **Example:** `broadcast`\n- **Validation rules:** `required|in:broadcast,targeted`\n- `required` — must be provided.\n- `in:broadcast,targeted` — must be one of: broadcast, targeted.\n### `user_ids`\n- **Description:** User IDs\n- **Type:** `array`\n- **Required:** conditional\n- **Example:** `[1]`\n- **Validation rules:** `required_if:target,targeted|array`\n- `required_if:target,targeted` — required when target, targeted.\n- `array` — must be an array.\n### `user_ids.*`\n- **Description:** User ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:users,id`\n- `integer` — must be a whole number.\n- `exists:users,id` — must reference an existing record (users, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notification sent successfully\",\n    \"data\": {\n        \"recipients_count\": 8\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - targeted notification",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Platform Maintenance\",\n    \"body\": \"The platform will be down for maintenance tonight.\",\n    \"target\": \"broadcast\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications/send",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications",
												"send"
											]
										},
										"description": "**Route:** `admin.notifications.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `body`\n- **Description:** Message Body\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:1000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `target`\n- **Description:** Target\n- **Type:** `string`\n- **Required:** required\n- **Example:** `broadcast`\n- **Validation rules:** `required|in:broadcast,targeted`\n- `required` — must be provided.\n- `in:broadcast,targeted` — must be one of: broadcast, targeted.\n### `user_ids`\n- **Description:** User IDs\n- **Type:** `array`\n- **Required:** conditional\n- **Example:** `[1]`\n- **Validation rules:** `required_if:target,targeted|array`\n- `required_if:target,targeted` — required when target, targeted.\n- `array` — must be an array.\n### `user_ids.*`\n- **Description:** User ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:users,id`\n- `integer` — must be a whole number.\n- `exists:users,id` — must reference an existing record (users, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notification sent successfully\",\n    \"data\": {\n        \"recipients_count\": 2\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - targeted without user_ids",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Platform Maintenance\",\n    \"body\": \"The platform will be down for maintenance tonight.\",\n    \"target\": \"broadcast\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications/send",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications",
												"send"
											]
										},
										"description": "**Route:** `admin.notifications.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `body`\n- **Description:** Message Body\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:1000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `target`\n- **Description:** Target\n- **Type:** `string`\n- **Required:** required\n- **Example:** `broadcast`\n- **Validation rules:** `required|in:broadcast,targeted`\n- `required` — must be provided.\n- `in:broadcast,targeted` — must be one of: broadcast, targeted.\n### `user_ids`\n- **Description:** User IDs\n- **Type:** `array`\n- **Required:** conditional\n- **Example:** `[1]`\n- **Validation rules:** `required_if:target,targeted|array`\n- `required_if:target,targeted` — required when target, targeted.\n- `array` — must be an array.\n### `user_ids.*`\n- **Description:** User ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:users,id`\n- `integer` — must be a whole number.\n- `exists:users,id` — must reference an existing record (users, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The User IDs field is required when Target is targeted.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid target enum value",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Platform Maintenance\",\n    \"body\": \"The platform will be down for maintenance tonight.\",\n    \"target\": \"broadcast\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/notifications/send",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"notifications",
												"send"
											]
										},
										"description": "**Route:** `admin.notifications.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:200`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:200` — must not exceed 200.\n### `body`\n- **Description:** Message Body\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:1000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:1000` — must not exceed 1000.\n### `target`\n- **Description:** Target\n- **Type:** `string`\n- **Required:** required\n- **Example:** `broadcast`\n- **Validation rules:** `required|in:broadcast,targeted`\n- `required` — must be provided.\n- `in:broadcast,targeted` — must be one of: broadcast, targeted.\n### `user_ids`\n- **Description:** User IDs\n- **Type:** `array`\n- **Required:** conditional\n- **Example:** `[1]`\n- **Validation rules:** `required_if:target,targeted|array`\n- `required_if:target,targeted` — required when target, targeted.\n- `array` — must be an array.\n### `user_ids.*`\n- **Description:** User ids item\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `integer|exists:users,id`\n- `integer` — must be a whole number.\n- `exists:users,id` — must reference an existing record (users, id).\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Invalid notification target.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Bulk Delete Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/notifications/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"notifications",
										"bulk"
									]
								},
								"body": {
									"mode": "raw",
									"raw": "{\n    \"ids\": [\n        \"b7e2c2b0-1a4b-4b3e-8e9f-2c1a1a2b3c4d\",\n        \"d3f1a9c8-5e6f-4a1b-9c2d-7f8e9a0b1c2d\"\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"description": "**Route:** `admin.notifications.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\nDeletes multiple sent notifications in one call by an array of UUIDs (`DatabaseNotification.id` is a UUID, not an integer — unlike every other `*/bulk` endpoint in this collection, which takes integer ids). Validated by `BulkDeleteNotificationRequest`: `ids` must be a non-empty array (max 100) of distinct UUID strings.\n\nAll-or-nothing: if any id in the array doesn't exist, the whole batch is rejected with `404` and nothing is deleted (`NotificationCommandService::bulkDestroy`).\n\n**Payload:**\nSend as `application/json`.\n```json\n{\n    \"ids\": [\"b7e2c2b0-1a4b-4b3e-8e9f-2c1a1a2b3c4d\", \"d3f1a9c8-5e6f-4a1b-9c2d-7f8e9a0b1c2d\"]\n}\n```\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": null }\n```"
							},
							"response": []
						}
					]
				},
				{
					"name": "12. Conversations & Contact Messages (Oversight)",
					"item": [
						{
							"name": "List All Contact messages",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contact-messages?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contact-messages"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_read]",
											"value": "0",
											"description": "Filter by read status: 0 or 1",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.contact-messages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_read]` — Filter by read status: 0 or 1 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_read]",
													"value": "0",
													"description": "Filter by read status: 0 or 1",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_read]` — Filter by read status: 0 or 1 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"contact_messages\": [\n            {\n                \"id\": 1,\n                \"name\": \"John Doe\",\n                \"email\": \"john@example.com\",\n                \"phone\": \"1000000001\",\n                \"subject\": \"Question about pricing\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:19:15\"\n            },\n            {\n                \"id\": 2,\n                \"name\": \"Jane Roe\",\n                \"email\": \"jane@example.com\",\n                \"phone\": \"1000000002\",\n                \"subject\": \"Complaint\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:19:15\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/contact-messages\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_read]",
													"value": "0",
													"description": "Filter by read status: 0 or 1",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_read]` — Filter by read status: 0 or 1 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"contact_messages\": [\n            {\n                \"id\": 1,\n                \"name\": \"John Doe\",\n                \"email\": \"john@example.com\",\n                \"phone\": \"1000000001\",\n                \"subject\": \"Question about pricing\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:20:13\"\n            },\n            {\n                \"id\": 2,\n                \"name\": \"Jane Roe\",\n                \"email\": \"jane@example.com\",\n                \"phone\": \"1000000002\",\n                \"subject\": \"Complaint\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:20:13\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/contact-messages\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_read]",
													"value": "0",
													"description": "Filter by read status: 0 or 1",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_read]` — Filter by read status: 0 or 1 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"contact_messages\": [\n            {\n                \"id\": 1,\n                \"name\": \"John Doe\",\n                \"email\": \"john@example.com\",\n                \"phone\": \"1000000001\",\n                \"subject\": \"Question about pricing\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:24:24\"\n            },\n            {\n                \"id\": 2,\n                \"name\": \"Jane Roe\",\n                \"email\": \"jane@example.com\",\n                \"phone\": \"1000000002\",\n                \"subject\": \"Complaint\",\n                \"is_read\": false,\n                \"replied_at\": null,\n                \"created_at\": \"2026-08-20 14:24:24\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/contact-messages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/contact-messages\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Conversations",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"conversations\": [\n            {\n                \"id\": 1,\n                \"customer\": {\n                    \"id\": 3,\n                    \"name\": \"Davin Gibson\",\n                    \"email\": \"rbednar@example.org\"\n                },\n                \"subject\": \"Need help with my order\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hello, when will my technician arrive?\",\n                \"created_at\": \"2026-08-20 14:19:16\",\n                \"closed_at\": null\n            },\n            {\n                \"id\": 2,\n                \"customer\": {\n                    \"id\": 3,\n                    \"name\": \"Davin Gibson\",\n                    \"email\": \"rbednar@example.org\"\n                },\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": null,\n                \"created_at\": \"2026-08-20 14:19:16\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/conversations\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"conversations\": [\n            {\n                \"id\": 1,\n                \"customer\": {\n                    \"id\": 105,\n                    \"name\": \"Ibrahim Price Jr.\",\n                    \"email\": \"arvilla37@example.org\"\n                },\n                \"subject\": \"Need help with my order\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hello, when will my technician arrive?\",\n                \"created_at\": \"2026-08-20 14:20:13\",\n                \"closed_at\": null\n            },\n            {\n                \"id\": 2,\n                \"customer\": {\n                    \"id\": 105,\n                    \"name\": \"Ibrahim Price Jr.\",\n                    \"email\": \"arvilla37@example.org\"\n                },\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": null,\n                \"created_at\": \"2026-08-20 14:20:13\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/conversations\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"conversations\": [\n            {\n                \"id\": 1,\n                \"customer\": {\n                    \"id\": 105,\n                    \"name\": \"Clyde Walker I\",\n                    \"email\": \"ykris@example.net\"\n                },\n                \"subject\": \"Need help with my order\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hello, when will my technician arrive?\",\n                \"created_at\": \"2026-08-20 14:24:24\",\n                \"closed_at\": null\n            },\n            {\n                \"id\": 2,\n                \"customer\": {\n                    \"id\": 105,\n                    \"name\": \"Clyde Walker I\",\n                    \"email\": \"ykris@example.net\"\n                },\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": null,\n                \"created_at\": \"2026-08-20 14:24:24\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/conversations\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Contact message Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contact-messages",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - marks as read",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"John Doe\",\n        \"email\": \"john@example.com\",\n        \"phone\": \"1000000001\",\n        \"subject\": \"Question about pricing\",\n        \"is_read\": true,\n        \"replied_at\": null,\n        \"created_at\": \"2026-08-20 14:19:15\",\n        \"message\": \"How much does a standard maintenance visit cost?\",\n        \"reply\": null,\n        \"replied_by\": null,\n        \"updated_at\": \"2026-08-20 14:19:15\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - marks as read",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"John Doe\",\n        \"email\": \"john@example.com\",\n        \"phone\": \"1000000001\",\n        \"subject\": \"Question about pricing\",\n        \"is_read\": true,\n        \"replied_at\": null,\n        \"created_at\": \"2026-08-20 14:20:13\",\n        \"message\": \"How much does a standard maintenance visit cost?\",\n        \"reply\": null,\n        \"replied_by\": null,\n        \"updated_at\": \"2026-08-20 14:20:13\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - marks as read",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"John Doe\",\n        \"email\": \"john@example.com\",\n        \"phone\": \"1000000001\",\n        \"subject\": \"Question about pricing\",\n        \"is_read\": true,\n        \"replied_at\": null,\n        \"created_at\": \"2026-08-20 14:24:24\",\n        \"message\": \"How much does a standard maintenance visit cost?\",\n        \"reply\": null,\n        \"replied_by\": null,\n        \"updated_at\": \"2026-08-20 14:24:24\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 3,\n            \"name\": \"Davin Gibson\",\n            \"email\": \"rbednar@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20 14:19:16\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 1,\n                \"sender\": {\n                    \"id\": 3,\n                    \"name\": \"Davin Gibson\"\n                },\n                \"sender_type\": \"customer\",\n                \"body\": \"Hello, when will my technician arrive?\",\n                \"sent_at\": \"2026-08-20 14:19:16\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Ibrahim Price Jr.\",\n            \"email\": \"arvilla37@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20 14:20:13\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 1,\n                \"sender\": {\n                    \"id\": 105,\n                    \"name\": \"Ibrahim Price Jr.\"\n                },\n                \"sender_type\": \"customer\",\n                \"body\": \"Hello, when will my technician arrive?\",\n                \"sent_at\": \"2026-08-20 14:20:13\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Clyde Walker I\",\n            \"email\": \"ykris@example.net\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20 14:24:24\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 1,\n                \"sender\": {\n                    \"id\": 105,\n                    \"name\": \"Clyde Walker I\"\n                },\n                \"sender_type\": \"customer\",\n                \"body\": \"Hello, when will my technician arrive?\",\n                \"sent_at\": \"2026-08-20 14:24:24\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reply Contact message",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contact-messages",
										":id",
										"reply"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Reply sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a reply message.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Reply sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a reply message.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Reply sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a reply message.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"reply\": \"Thank you for reaching out, a standard visit costs 150 SAR.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `reply`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Thank you for reaching out. We will address your concern shortly.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Close Conversation",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"conversations",
										":id",
										"close"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** unaffected by the id/uuid bug on `reply` since this only updates an existing conversation's status, no new row created."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 3,\n            \"name\": \"Davin Gibson\",\n            \"email\": \"rbednar@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:19:16\",\n        \"closed_at\": \"2026-08-20 14:19:16\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already closed (idempotent, no guard)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 3,\n            \"name\": \"Davin Gibson\",\n            \"email\": \"rbednar@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:19:16\",\n        \"closed_at\": \"2026-08-20 14:19:16\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Ibrahim Price Jr.\",\n            \"email\": \"arvilla37@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:20:13\",\n        \"closed_at\": \"2026-08-20 14:20:13\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already closed (idempotent, no guard)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Ibrahim Price Jr.\",\n            \"email\": \"arvilla37@example.org\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:20:13\",\n        \"closed_at\": \"2026-08-20 14:20:13\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Clyde Walker I\",\n            \"email\": \"ykris@example.net\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:24:24\",\n        \"closed_at\": \"2026-08-20 14:24:24\"\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - already closed (idempotent, no guard)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Conversation closed successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"customer\": {\n            \"id\": 105,\n            \"name\": \"Clyde Walker I\",\n            \"email\": \"ykris@example.net\"\n        },\n        \"subject\": \"Need help with my order\",\n        \"status\": \"Closed\",\n        \"created_at\": \"2026-08-20 14:24:24\",\n        \"closed_at\": \"2026-08-20 14:24:24\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/close",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"close"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.close`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Reply Conversation",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Example message body text.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"conversations",
										":id",
										"reply"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Fixed:** an earlier pass of this doc flagged a real P0 here — `Conversation`, `Message`, and `InternalNote` all `use HasUuids` despite their `id` columns being plain auto-increment `BIGINT`s, so every create threw `SQLSTATE[01000]: Data truncated for column 'id'`. Fixed by dropping `HasUuids` from all three models (kept only on models whose primary key really is a UUID, like `Order`/`Contract`). See `app/Models/Conversation.php`, `app/Models/Message.php`, `app/Models/InternalNote.php`."
							},
							"response": [
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reply field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reply field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Reply field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Example message body text.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id/reply",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id",
												"reply"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.reply`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Reply\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Contact message",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contact-messages",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.contact-messages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Conversation",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.conversations.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"contact-messages",
										"bulk"
									]
								},
								"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/contact-messages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"contact-messages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.contact-messages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "13. Audit Logs",
					"item": [
						{
							"name": "List All Audit logs",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/audit-logs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"audit-logs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "model",
											"value": "App\\Models\\User",
											"description": "Filter by model class",
											"disabled": true
										},
										{
											"key": "actor_id",
											"value": "1",
											"description": "Filter by actor user ID",
											"disabled": true
										},
										{
											"key": "action",
											"value": "created",
											"description": "Filter by action: created, updated, deleted",
											"disabled": true
										},
										{
											"key": "from",
											"value": "2024-01-01",
											"description": "Filter from date",
											"disabled": true
										},
										{
											"key": "to",
											"value": "2024-12-31",
											"description": "Filter to date",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.audit-logs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `model` — Filter by model class (optional)\n- `actor_id` — Filter by actor user ID (optional)\n- `action` — Filter by action: created, updated, deleted (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list audit logs",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/audit-logs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"audit-logs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "model",
													"value": "App\\Models\\User",
													"description": "Filter by model class",
													"disabled": true
												},
												{
													"key": "actor_id",
													"value": "1",
													"description": "Filter by actor user ID",
													"disabled": true
												},
												{
													"key": "action",
													"value": "created",
													"description": "Filter by action: created, updated, deleted",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.audit-logs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `model` — Filter by model class (optional)\n- `actor_id` — Filter by actor user ID (optional)\n- `action` — Filter by action: created, updated, deleted (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Audit logs retrieved\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": 35,\n                \"auditable_type\": \"App\\\\Models\\\\User\",\n                \"auditable_id\": 99,\n                \"action\": \"updated\",\n                \"old_values\": {\n                    \"status\": \"pending\"\n                },\n                \"new_values\": {\n                    \"status\": \"active\"\n                },\n                \"actor_id\": 99,\n                \"ip_address\": \"127.0.0.1\",\n                \"user_agent\": \"PHPUnit\",\n                \"correlation_id\": \"45f99f86-8cd7-407d-964f-b3b633d8223c\",\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"actor\": {\n                    \"id\": 99,\n                    \"name\": \"Mrs. Aiyana Miller\",\n                    \"email\": \"prince.kunde@example.org\"\n                }\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"from\": 1,\n        \"last_page\": 1,\n        \"last_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": null,\n        \"path\": \"http://localhost/api/v1/admin/audit-logs\",\n        \"per_page\": 25,\n        \"prev_page_url\": null,\n        \"to\": 1,\n        \"total\": 1\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - filter by model",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/audit-logs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"audit-logs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "model",
													"value": "App\\Models\\User",
													"description": "Filter by model class",
													"disabled": true
												},
												{
													"key": "actor_id",
													"value": "1",
													"description": "Filter by actor user ID",
													"disabled": true
												},
												{
													"key": "action",
													"value": "created",
													"description": "Filter by action: created, updated, deleted",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.audit-logs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `model` — Filter by model class (optional)\n- `actor_id` — Filter by actor user ID (optional)\n- `action` — Filter by action: created, updated, deleted (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Audit logs retrieved\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": 35,\n                \"auditable_type\": \"App\\\\Models\\\\User\",\n                \"auditable_id\": 99,\n                \"action\": \"updated\",\n                \"old_values\": {\n                    \"status\": \"pending\"\n                },\n                \"new_values\": {\n                    \"status\": \"active\"\n                },\n                \"actor_id\": 99,\n                \"ip_address\": \"127.0.0.1\",\n                \"user_agent\": \"PHPUnit\",\n                \"correlation_id\": \"45f99f86-8cd7-407d-964f-b3b633d8223c\",\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"actor\": {\n                    \"id\": 99,\n                    \"name\": \"Mrs. Aiyana Miller\",\n                    \"email\": \"prince.kunde@example.org\"\n                }\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"from\": 1,\n        \"last_page\": 1,\n        \"last_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": null,\n        \"path\": \"http://localhost/api/v1/admin/audit-logs\",\n        \"per_page\": 25,\n        \"prev_page_url\": null,\n        \"to\": 1,\n        \"total\": 1\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: date range filter result",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/audit-logs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"audit-logs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "model",
													"value": "App\\Models\\User",
													"description": "Filter by model class",
													"disabled": true
												},
												{
													"key": "actor_id",
													"value": "1",
													"description": "Filter by actor user ID",
													"disabled": true
												},
												{
													"key": "action",
													"value": "created",
													"description": "Filter by action: created, updated, deleted",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.audit-logs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `model` — Filter by model class (optional)\n- `actor_id` — Filter by actor user ID (optional)\n- `action` — Filter by action: created, updated, deleted (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Audit logs retrieved\",\n    \"data\": {\n        \"current_page\": 1,\n        \"data\": [\n            {\n                \"id\": 35,\n                \"auditable_type\": \"App\\\\Models\\\\User\",\n                \"auditable_id\": 99,\n                \"action\": \"updated\",\n                \"old_values\": {\n                    \"status\": \"pending\"\n                },\n                \"new_values\": {\n                    \"status\": \"active\"\n                },\n                \"actor_id\": 99,\n                \"ip_address\": \"127.0.0.1\",\n                \"user_agent\": \"PHPUnit\",\n                \"correlation_id\": \"45f99f86-8cd7-407d-964f-b3b633d8223c\",\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"actor\": {\n                    \"id\": 99,\n                    \"name\": \"Mrs. Aiyana Miller\",\n                    \"email\": \"prince.kunde@example.org\"\n                }\n            }\n        ],\n        \"first_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"from\": 1,\n        \"last_page\": 1,\n        \"last_page_url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n        \"links\": [\n            {\n                \"url\": null,\n                \"label\": \"&laquo; Previous\",\n                \"page\": null,\n                \"active\": false\n            },\n            {\n                \"url\": \"http://localhost/api/v1/admin/audit-logs?page=1\",\n                \"label\": \"1\",\n                \"page\": 1,\n                \"active\": true\n            },\n            {\n                \"url\": null,\n                \"label\": \"Next &raquo;\",\n                \"page\": null,\n                \"active\": false\n            }\n        ],\n        \"next_page_url\": null,\n        \"path\": \"http://localhost/api/v1/admin/audit-logs\",\n        \"per_page\": 25,\n        \"prev_page_url\": null,\n        \"to\": 1,\n        \"total\": 1\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/audit-logs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"audit-logs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "model",
													"value": "App\\Models\\User",
													"description": "Filter by model class",
													"disabled": true
												},
												{
													"key": "actor_id",
													"value": "1",
													"description": "Filter by actor user ID",
													"disabled": true
												},
												{
													"key": "action",
													"value": "created",
													"description": "Filter by action: created, updated, deleted",
													"disabled": true
												},
												{
													"key": "from",
													"value": "2024-01-01",
													"description": "Filter from date",
													"disabled": true
												},
												{
													"key": "to",
													"value": "2024-12-31",
													"description": "Filter to date",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.audit-logs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `model` — Filter by model class (optional)\n- `actor_id` — Filter by actor user ID (optional)\n- `action` — Filter by action: created, updated, deleted (optional)\n- `from` — Filter from date (optional)\n- `to` — Filter to date (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "14. Dashboard & Reports",
					"item": [
						{
							"name": "List All Dashboard",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/dashboard?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"dashboard"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.dashboard.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - dashboard metrics",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/dashboard?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"dashboard"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.dashboard.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Dashboard metrics retrieved\",\n    \"data\": {\n        \"users\": {\n            \"total\": 12,\n            \"active\": 11,\n            \"today\": 12,\n            \"this_week\": 12\n        },\n        \"addresses\": {\n            \"total\": 0,\n            \"with_default\": 0,\n            \"top_countries\": []\n        },\n        \"system\": {\n            \"php_version\": \"8.4.24\",\n            \"laravel_version\": \"13.25.0\",\n            \"environment\": \"testing\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/dashboard?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"dashboard"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.dashboard.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Companies Dashboard",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/dashboard/companies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"dashboard",
										"companies"
									]
								},
								"description": "**Route:** `admin.dashboard.companies`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - company dashboard metrics",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/dashboard/companies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"dashboard",
												"companies"
											]
										},
										"description": "**Route:** `admin.dashboard.companies`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Company dashboard metrics retrieved\",\n    \"data\": {\n        \"total\": 2,\n        \"by_status\": {\n            \"pending\": 1,\n            \"active\": 1\n        },\n        \"pending_review\": 1,\n        \"today\": 2,\n        \"this_week\": 2,\n        \"verification_completeness\": {\n            \"with_tax_number\": 0,\n            \"with_commercial_registration_no\": 0\n        },\n        \"recent\": [\n            {\n                \"id\": 98,\n                \"legal_name\": null,\n                \"email\": \"bruce15@example.com\",\n                \"account_owner_phone\": null,\n                \"status\": \"pending\",\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\"\n            },\n            {\n                \"id\": 97,\n                \"legal_name\": null,\n                \"email\": \"estelle.medhurst@example.net\",\n                \"account_owner_phone\": null,\n                \"status\": \"active\",\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Technicians Dashboard",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/dashboard/technicians",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"dashboard",
										"technicians"
									]
								},
								"description": "**Route:** `admin.dashboard.technicians`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - technician dashboard metrics",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/dashboard/technicians",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"dashboard",
												"technicians"
											]
										},
										"description": "**Route:** `admin.dashboard.technicians`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Technician dashboard metrics retrieved\",\n    \"data\": {\n        \"total\": 0,\n        \"active\": 0,\n        \"by_availability\": [],\n        \"by_category\": [],\n        \"by_employment_type\": [],\n        \"average_rating\": 0,\n        \"top_by_completed_orders\": [],\n        \"top_by_rating\": []\n    }\n}"
								}
							]
						},
						{
							"name": "Operational Report",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/reports/operational?date_from=2026-08-01&date_to=2026-08-31&date_basis=created&timezone=Africa/Cairo",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"reports",
										"operational"
									],
									"query": [
										{
											"key": "date_from",
											"value": "2026-08-01",
											"description": "Inclusive report date (maximum range: 366 days)"
										},
										{
											"key": "date_to",
											"value": "2026-08-31",
											"description": "Inclusive report date"
										},
										{
											"key": "date_basis",
											"value": "created",
											"description": "created or scheduled"
										},
										{
											"key": "timezone",
											"value": "Africa/Cairo",
											"description": "IANA timezone used for date boundaries"
										},
										{
											"key": "statuses[]",
											"value": "pending",
											"description": "Optional current order status",
											"disabled": true
										},
										{
											"key": "order_sources[]",
											"value": "individual",
											"description": "Optional: individual or job_order",
											"disabled": true
										},
										{
											"key": "booking_types[]",
											"value": "scheduled",
											"description": "Optional: instant or scheduled",
											"disabled": true
										},
										{
											"key": "customer_id",
											"value": "1",
											"description": "Optional customer ID",
											"disabled": true
										},
										{
											"key": "technician_id",
											"value": "1",
											"description": "Optional technician ID",
											"disabled": true
										},
										{
											"key": "branch_id",
											"value": "1",
											"description": "Optional branch ID",
											"disabled": true
										},
										{
											"key": "contract_id",
											"value": "1",
											"description": "Optional contract ID",
											"disabled": true
										},
										{
											"key": "needs_attention",
											"value": "true",
											"description": "Optional boolean filter",
											"disabled": true
										},
										{
											"key": "risk_limit",
											"value": "20",
											"description": "Rows returned per risk queue (1–50)",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.reports.operational`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `date_from` — Inclusive report date (maximum range: 366 days) (supported)\n- `date_to` — Inclusive report date (supported)\n- `date_basis` — created or scheduled (supported)\n- `timezone` — IANA timezone used for date boundaries (supported)\n- `statuses[]` — Optional current order status (optional)\n- `order_sources[]` — Optional: individual or job_order (optional)\n- `booking_types[]` — Optional: instant or scheduled (optional)\n- `customer_id` — Optional customer ID (optional)\n- `technician_id` — Optional technician ID (optional)\n- `branch_id` — Optional branch ID (optional)\n- `contract_id` — Optional contract ID (optional)\n- `needs_attention` — Optional boolean filter (optional)\n- `risk_limit` — Rows returned per risk queue (1–50) (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/reports/operational?date_from=2026-08-01&date_to=2026-08-31&date_basis=created&timezone=Africa/Cairo",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"reports",
												"operational"
											],
											"query": [
												{
													"key": "date_from",
													"value": "2026-08-01",
													"description": "Inclusive report date (maximum range: 366 days)"
												},
												{
													"key": "date_to",
													"value": "2026-08-31",
													"description": "Inclusive report date"
												},
												{
													"key": "date_basis",
													"value": "created",
													"description": "created or scheduled"
												},
												{
													"key": "timezone",
													"value": "Africa/Cairo",
													"description": "IANA timezone used for date boundaries"
												},
												{
													"key": "statuses[]",
													"value": "pending",
													"description": "Optional current order status",
													"disabled": true
												},
												{
													"key": "order_sources[]",
													"value": "individual",
													"description": "Optional: individual or job_order",
													"disabled": true
												},
												{
													"key": "booking_types[]",
													"value": "scheduled",
													"description": "Optional: instant or scheduled",
													"disabled": true
												},
												{
													"key": "customer_id",
													"value": "1",
													"description": "Optional customer ID",
													"disabled": true
												},
												{
													"key": "technician_id",
													"value": "1",
													"description": "Optional technician ID",
													"disabled": true
												},
												{
													"key": "branch_id",
													"value": "1",
													"description": "Optional branch ID",
													"disabled": true
												},
												{
													"key": "contract_id",
													"value": "1",
													"description": "Optional contract ID",
													"disabled": true
												},
												{
													"key": "needs_attention",
													"value": "true",
													"description": "Optional boolean filter",
													"disabled": true
												},
												{
													"key": "risk_limit",
													"value": "20",
													"description": "Rows returned per risk queue (1–50)",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.reports.operational`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `date_from` — Inclusive report date (maximum range: 366 days) (supported)\n- `date_to` — Inclusive report date (supported)\n- `date_basis` — created or scheduled (supported)\n- `timezone` — IANA timezone used for date boundaries (supported)\n- `statuses[]` — Optional current order status (optional)\n- `order_sources[]` — Optional: individual or job_order (optional)\n- `booking_types[]` — Optional: instant or scheduled (optional)\n- `customer_id` — Optional customer ID (optional)\n- `technician_id` — Optional technician ID (optional)\n- `branch_id` — Optional branch ID (optional)\n- `contract_id` — Optional contract ID (optional)\n- `needs_attention` — Optional boolean filter (optional)\n- `risk_limit` — Rows returned per risk queue (1–50) (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Operational report retrieved\",\n    \"data\": {\n        \"meta\": {\n            \"metric_version\": \"operational-v1\",\n            \"report_kind\": \"current_operations_snapshot\",\n            \"snapshot_semantics\": \"current_order_state_for_orders_selected_by_date_basis\",\n            \"historical_as_of_state\": \"not_available\",\n            \"date_basis\": \"created\",\n            \"timezone\": \"Africa/Cairo\",\n            \"filters\": {\n                \"date_basis\": \"created\",\n                \"date_from\": \"2026-08-01\",\n                \"date_to\": \"2026-08-31\",\n                \"timezone\": \"Africa/Cairo\",\n                \"risk_limit\": 20\n            },\n            \"filters_hash\": \"8db36da0b553f7d440dff0638e6bca9ef715dae2dca125fb838fc442aee570a9\",\n            \"generated_at\": \"2026-08-20T20:04:07+00:00\",\n            \"source_watermark\": \"2026-08-20T19:55:35+00:00\",\n            \"refresh_after_seconds\": 60,\n            \"risk_queue_scope\": \"current_order_state_with_selected_filters\"\n        },\n        \"metrics\": {\n            \"orders_in_selected_period\": 22,\n            \"scheduled_orders\": 10,\n            \"unassigned_pending\": 10,\n            \"pending_assigned_awaiting_acceptance\": 0,\n            \"needs_attention_orders\": 0,\n            \"active_in_field\": 4,\n            \"technically_finished_awaiting_customer\": 5,\n            \"customer_confirmed\": 1,\n            \"cancelled_orders\": 0,\n            \"contract_orders\": 0,\n            \"non_contract_orders\": 22\n        },\n        \"distributions\": {\n            \"by_status\": [\n                {\n                    \"value\": \"accepted\",\n                    \"orders\": 2\n                },\n                {\n                    \"value\": \"confirmed\",\n                    \"orders\": 1\n                },\n                {\n                    \"value\": \"finish\",\n                    \"orders\": 5\n                },\n                {\n                    \"value\": \"on_the_way\",\n                    \"orders\": 1\n                },\n                {\n                    \"value\": \"pending\",\n                    \"orders\": 10\n                },\n                {\n                    \"value\": \"start\",\n                    \"orders\": 3\n                }\n            ],\n            \"by_order_source\": [\n                {\n                    \"value\": \"company\",\n                    \"orders\": 16\n                },\n                {\n                    \"value\": \"individual\",\n                    \"orders\": 6\n                }\n            ],\n            \"by_booking_type\": [\n                {\n                    \"value\": \"instant\",\n                    \"orders\": 13\n                },\n                {\n                    \"value\": \"scheduled\",\n                    \"orders\": 9\n                }\n            ]\n        },\n        \"risk_queues\": {\n            \"unassigned_pending\": [\n                {\n                    \"id\": \"460aab99-cc79-44ad-ac56-b71b385c37a4\",\n                    \"order_number\": \"ORD-260820-OBNC\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"individual\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:28\"\n                },\n                {\n                    \"id\": \"599c2e9b-6e86-4a14-8bb4-0c08bcd4325d\",\n                    \"order_number\": \"ORD-260820-TDWW\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"0739dc4d-f9cb-4bfd-95f3-5375d200134e\",\n                    \"order_number\": \"ORD-260820-AUGY\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"f2d17fe0-a83d-4424-8262-fce1bf937bf5\",\n                    \"order_number\": \"ORD-260820-SKPG\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"26fccf91-6e4c-4553-bc23-f9cddcfba40b\",\n                    \"order_number\": \"ORD-260820-OHEL\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"0e60967c-e182-4d35-b6d1-0e87ed5717f6\",\n                    \"order_number\": \"ORD-260820-HQPC\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"5299ef16-3978-4808-b7f3-1c0b92fa2cea\",\n                    \"order_number\": \"ORD-260820-SDWO\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"275f9554-5be0-428c-b564-a71ed0435fec\",\n                    \"order_number\": \"ORD-260820-OQNI\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": \"2026-08-26\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"0c83e0f3-63c5-4a5c-aceb-7b75af0a7372\",\n                    \"order_number\": \"ORD-260820-KZSV\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": \"2026-08-29\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"0356c11f-6c66-4f89-93b3-fa917f1edb7c\",\n                    \"order_number\": \"ORD-260820-PXLS\",\n                    \"status\": \"pending\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": \"2026-09-01\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                }\n            ],\n            \"needs_attention\": [],\n            \"awaiting_customer_confirmation\": [\n                {\n                    \"id\": \"7ee82712-5701-4a64-b0e1-993ffefad020\",\n                    \"order_number\": \"ORD-260820-KQBH\",\n                    \"status\": \"finish\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"6b4ac484-712a-41bd-919e-6d9768df1c78\",\n                    \"order_number\": \"ORD-260820-OWIZ\",\n                    \"status\": \"finish\",\n                    \"order_source\": \"individual\",\n                    \"scheduled_date\": null,\n                    \"technician_name\": \"Fahad Al-Otaibi\",\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 19:44:02\"\n                },\n                {\n                    \"id\": \"4f467f5c-4606-435b-9ffe-a410e3b503f7\",\n                    \"order_number\": \"ORD-260820-UMAS\",\n                    \"status\": \"finish\",\n                    \"order_source\": \"company\",\n                    \"scheduled_date\": \"2026-08-23\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:29\"\n                },\n                {\n                    \"id\": \"d171afaa-f57f-457c-a027-34f2beb0051f\",\n                    \"order_number\": \"ORD-260820-OKSH\",\n                    \"status\": \"finish\",\n                    \"order_source\": \"individual\",\n                    \"scheduled_date\": \"2026-08-28\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:28\"\n                },\n                {\n                    \"id\": \"9f167f39-a1df-4679-824d-c4a4efa035a2\",\n                    \"order_number\": \"ORD-260820-HFFE\",\n                    \"status\": \"finish\",\n                    \"order_source\": \"individual\",\n                    \"scheduled_date\": \"2026-08-29\",\n                    \"technician_name\": null,\n                    \"needs_attention\": false,\n                    \"created_at\": \"2026-08-20 18:37:28\"\n                }\n            ]\n        },\n        \"data_quality\": {\n            \"status_history_time_metrics\": \"not_certified\",\n            \"assignment_sla_metrics\": \"not_available\",\n            \"completion_evidence_metrics\": \"not_certified\",\n            \"technician_rating_metrics\": \"not_certified\"\n        }\n    }\n}\n"
								}
							]
						}
					]
				},
				{
					"name": "15. Roles, Permissions & Supervisors",
					"item": [
						{
							"name": "List All Permissions",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/permissions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"permissions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.permissions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/permissions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"permissions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.permissions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Permissions retrieved\",\n    \"data\": [\n        {\n            \"id\": 70,\n            \"name\": \"destroy-audit-logs\",\n            \"display_name\": \"Destroy Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.destroy\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 66,\n            \"name\": \"index-audit-logs\",\n            \"display_name\": \"Index Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.index\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 67,\n            \"name\": \"show-audit-logs\",\n            \"display_name\": \"Show Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.show\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 68,\n            \"name\": \"store-audit-logs\",\n            \"display_name\": \"Store Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.store\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 69,\n            \"name\": \"update-audit-logs\",\n            \"display_name\": \"Update Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.update\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 25,\n            \"name\": \"destroy-categories\",\n            \"display_name\": \"Destroy Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.destroy\",\n            \"resource\": \"categories\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 21,\n            \"name\": \"index-categories\",\n            \"display_name\": \"Index Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.index\",\n            \"resource\": \"categories\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 22,\n            \"name\": \"show-categories\",\n            \"display_name\": \"Show Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.show\",\n            \"resource\": \"categories\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 23,\n            \"name\": \"store-categories\",\n            \"display_name\": \"Store Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.store\",\n            \"resource\": \"categories\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 24,\n            \"name\": \"update-categories\",\n            \"display_name\": \"Update Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.update\",\n            \"resource\": \"categories\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 75,\n            \"name\": \"destroy-contact-messages\",\n            \"display_name\": \"Destroy Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.destroy\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 71,\n            \"name\": \"index-contact-messages\",\n            \"display_name\": \"Index Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.index\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 72,\n            \"name\": \"show-contact-messages\",\n            \"display_name\": \"Show Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.show\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 73,\n            \"name\": \"store-contact-messages\",\n            \"display_name\": \"Store Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.store\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 74,\n            \"name\": \"update-contact-messages\",\n            \"display_name\": \"Update Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.update\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 90,\n            \"name\": \"destroy-conversations\",\n            \"display_name\": \"Destroy Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.destroy\",\n            \"resource\": \"conversations\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 86,\n            \"name\": \"index-conversations\",\n            \"display_name\": \"Index Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.index\",\n            \"resource\": \"conversations\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 87,\n            \"name\": \"show-conversations\",\n            \"display_name\": \"Show Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.show\",\n            \"resource\": \"conversations\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 88,\n            \"name\": \"store-conversations\",\n            \"display_name\": \"Store Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.store\",\n            \"resource\": \"conversations\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 89,\n            \"name\": \"update-conversations\",\n            \"display_name\": \"Update Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.update\",\n            \"resource\": \"conversations\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 5,\n            \"name\": \"destroy-countries\",\n            \"display_name\": \"Destroy Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.destroy\",\n            \"resource\": \"countries\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 1,\n            \"name\": \"index-countries\",\n            \"display_name\": \"Index Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.index\",\n            \"resource\": \"countries\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 2,\n            \"name\": \"show-countries\",\n            \"display_name\": \"Show Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.show\",\n            \"resource\": \"countries\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 3,\n            \"name\": \"store-countries\",\n            \"display_name\": \"Store Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.store\",\n            \"resource\": \"countries\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 4,\n            \"name\": \"update-countries\",\n            \"display_name\": \"Update Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.update\",\n            \"resource\": \"countries\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 85,\n            \"name\": \"destroy-dashboard-home\",\n            \"display_name\": \"Destroy Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.destroy\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 81,\n            \"name\": \"index-dashboard-home\",\n            \"display_name\": \"Index Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.index\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 82,\n            \"name\": \"show-dashboard-home\",\n            \"display_name\": \"Show Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.show\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 83,\n            \"name\": \"store-dashboard-home\",\n            \"display_name\": \"Store Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.store\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 84,\n            \"name\": \"update-dashboard-home\",\n            \"display_name\": \"Update Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.update\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 30,\n            \"name\": \"destroy-faqs\",\n            \"display_name\": \"Destroy Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.destroy\",\n            \"resource\": \"faqs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 26,\n            \"name\": \"index-faqs\",\n            \"display_name\": \"Index Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.index\",\n            \"resource\": \"faqs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 27,\n            \"name\": \"show-faqs\",\n            \"display_name\": \"Show Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.show\",\n            \"resource\": \"faqs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 28,\n            \"name\": \"store-faqs\",\n            \"display_name\": \"Store Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.store\",\n            \"resource\": \"faqs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 29,\n            \"name\": \"update-faqs\",\n            \"display_name\": \"Update Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.update\",\n            \"resource\": \"faqs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 65,\n            \"name\": \"destroy-feature-flags\",\n            \"display_name\": \"Destroy Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.destroy\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 61,\n            \"name\": \"index-feature-flags\",\n            \"display_name\": \"Index Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.index\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 62,\n            \"name\": \"show-feature-flags\",\n            \"display_name\": \"Show Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.show\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 63,\n            \"name\": \"store-feature-flags\",\n            \"display_name\": \"Store Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.store\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 64,\n            \"name\": \"update-feature-flags\",\n            \"display_name\": \"Update Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.update\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 10,\n            \"name\": \"destroy-governorates\",\n            \"display_name\": \"Destroy Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.destroy\",\n            \"resource\": \"governorates\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 6,\n            \"name\": \"index-governorates\",\n            \"display_name\": \"Index Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.index\",\n            \"resource\": \"governorates\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 7,\n            \"name\": \"show-governorates\",\n            \"display_name\": \"Show Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.show\",\n            \"resource\": \"governorates\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 8,\n            \"name\": \"store-governorates\",\n            \"display_name\": \"Store Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.store\",\n            \"resource\": \"governorates\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 9,\n            \"name\": \"update-governorates\",\n            \"display_name\": \"Update Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.update\",\n            \"resource\": \"governorates\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 95,\n            \"name\": \"destroy-internal-notes\",\n            \"display_name\": \"Destroy Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.destroy\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 91,\n            \"name\": \"index-internal-notes\",\n            \"display_name\": \"Index Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.index\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 92,\n            \"name\": \"show-internal-notes\",\n            \"display_name\": \"Show Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.show\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 93,\n            \"name\": \"store-internal-notes\",\n            \"display_name\": \"Store Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.store\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 94,\n            \"name\": \"update-internal-notes\",\n            \"display_name\": \"Update Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.update\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 80,\n            \"name\": \"destroy-notifications\",\n            \"display_name\": \"Destroy Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.destroy\",\n            \"resource\": \"notifications\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 76,\n            \"name\": \"index-notifications\",\n            \"display_name\": \"Index Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.index\",\n            \"resource\": \"notifications\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 77,\n            \"name\": \"show-notifications\",\n            \"display_name\": \"Show Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.show\",\n            \"resource\": \"notifications\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 78,\n            \"name\": \"store-notifications\",\n            \"display_name\": \"Store Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.store\",\n            \"resource\": \"notifications\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 79,\n            \"name\": \"update-notifications\",\n            \"display_name\": \"Update Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.update\",\n            \"resource\": \"notifications\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 15,\n            \"name\": \"destroy-regions\",\n            \"display_name\": \"Destroy Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.destroy\",\n            \"resource\": \"regions\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 11,\n            \"name\": \"index-regions\",\n            \"display_name\": \"Index Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.index\",\n            \"resource\": \"regions\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 12,\n            \"name\": \"show-regions\",\n            \"display_name\": \"Show Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.show\",\n            \"resource\": \"regions\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 13,\n            \"name\": \"store-regions\",\n            \"display_name\": \"Store Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.store\",\n            \"resource\": \"regions\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 14,\n            \"name\": \"update-regions\",\n            \"display_name\": \"Update Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.update\",\n            \"resource\": \"regions\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 55,\n            \"name\": \"destroy-roles\",\n            \"display_name\": \"Destroy Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.destroy\",\n            \"resource\": \"roles\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 51,\n            \"name\": \"index-roles\",\n            \"display_name\": \"Index Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.index\",\n            \"resource\": \"roles\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 52,\n            \"name\": \"show-roles\",\n            \"display_name\": \"Show Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.show\",\n            \"resource\": \"roles\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 53,\n            \"name\": \"store-roles\",\n            \"display_name\": \"Store Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.store\",\n            \"resource\": \"roles\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 54,\n            \"name\": \"update-roles\",\n            \"display_name\": \"Update Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.update\",\n            \"resource\": \"roles\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 60,\n            \"name\": \"destroy-settings\",\n            \"display_name\": \"Destroy Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.destroy\",\n            \"resource\": \"settings\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 56,\n            \"name\": \"index-settings\",\n            \"display_name\": \"Index Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.index\",\n            \"resource\": \"settings\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 57,\n            \"name\": \"show-settings\",\n            \"display_name\": \"Show Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.show\",\n            \"resource\": \"settings\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 58,\n            \"name\": \"store-settings\",\n            \"display_name\": \"Store Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.store\",\n            \"resource\": \"settings\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 59,\n            \"name\": \"update-settings\",\n            \"display_name\": \"Update Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.update\",\n            \"resource\": \"settings\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 20,\n            \"name\": \"destroy-shipping-zones\",\n            \"display_name\": \"Destroy Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.destroy\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 16,\n            \"name\": \"index-shipping-zones\",\n            \"display_name\": \"Index Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.index\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 17,\n            \"name\": \"show-shipping-zones\",\n            \"display_name\": \"Show Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.show\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 18,\n            \"name\": \"store-shipping-zones\",\n            \"display_name\": \"Store Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.store\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 19,\n            \"name\": \"update-shipping-zones\",\n            \"display_name\": \"Update Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.update\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 40,\n            \"name\": \"destroy-sliders\",\n            \"display_name\": \"Destroy Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.destroy\",\n            \"resource\": \"sliders\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 36,\n            \"name\": \"index-sliders\",\n            \"display_name\": \"Index Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.index\",\n            \"resource\": \"sliders\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 37,\n            \"name\": \"show-sliders\",\n            \"display_name\": \"Show Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.show\",\n            \"resource\": \"sliders\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 38,\n            \"name\": \"store-sliders\",\n            \"display_name\": \"Store Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.store\",\n            \"resource\": \"sliders\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 39,\n            \"name\": \"update-sliders\",\n            \"display_name\": \"Update Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.update\",\n            \"resource\": \"sliders\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 35,\n            \"name\": \"destroy-static-pages\",\n            \"display_name\": \"Destroy Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.destroy\",\n            \"resource\": \"static-pages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 31,\n            \"name\": \"index-static-pages\",\n            \"display_name\": \"Index Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.index\",\n            \"resource\": \"static-pages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 32,\n            \"name\": \"show-static-pages\",\n            \"display_name\": \"Show Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.show\",\n            \"resource\": \"static-pages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 33,\n            \"name\": \"store-static-pages\",\n            \"display_name\": \"Store Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.store\",\n            \"resource\": \"static-pages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 34,\n            \"name\": \"update-static-pages\",\n            \"display_name\": \"Update Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.update\",\n            \"resource\": \"static-pages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 50,\n            \"name\": \"destroy-supervisors\",\n            \"display_name\": \"Destroy Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.destroy\",\n            \"resource\": \"supervisors\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 46,\n            \"name\": \"index-supervisors\",\n            \"display_name\": \"Index Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.index\",\n            \"resource\": \"supervisors\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 47,\n            \"name\": \"show-supervisors\",\n            \"display_name\": \"Show Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.show\",\n            \"resource\": \"supervisors\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 48,\n            \"name\": \"store-supervisors\",\n            \"display_name\": \"Store Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.store\",\n            \"resource\": \"supervisors\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 49,\n            \"name\": \"update-supervisors\",\n            \"display_name\": \"Update Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.update\",\n            \"resource\": \"supervisors\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 45,\n            \"name\": \"destroy-users\",\n            \"display_name\": \"Destroy Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.destroy\",\n            \"resource\": \"users\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 41,\n            \"name\": \"index-users\",\n            \"display_name\": \"Index Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.index\",\n            \"resource\": \"users\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 42,\n            \"name\": \"show-users\",\n            \"display_name\": \"Show Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.show\",\n            \"resource\": \"users\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 43,\n            \"name\": \"store-users\",\n            \"display_name\": \"Store Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.store\",\n            \"resource\": \"users\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 44,\n            \"name\": \"update-users\",\n            \"display_name\": \"Update Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.update\",\n            \"resource\": \"users\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n            \"title\": null\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/permissions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"permissions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.permissions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Permissions retrieved\",\n    \"data\": [\n        {\n            \"id\": 70,\n            \"name\": \"destroy-audit-logs\",\n            \"display_name\": \"Destroy Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.destroy\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 66,\n            \"name\": \"index-audit-logs\",\n            \"display_name\": \"Index Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.index\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 67,\n            \"name\": \"show-audit-logs\",\n            \"display_name\": \"Show Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.show\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 68,\n            \"name\": \"store-audit-logs\",\n            \"display_name\": \"Store Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.store\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 69,\n            \"name\": \"update-audit-logs\",\n            \"display_name\": \"Update Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.update\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 25,\n            \"name\": \"destroy-categories\",\n            \"display_name\": \"Destroy Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.destroy\",\n            \"resource\": \"categories\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 21,\n            \"name\": \"index-categories\",\n            \"display_name\": \"Index Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.index\",\n            \"resource\": \"categories\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 22,\n            \"name\": \"show-categories\",\n            \"display_name\": \"Show Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.show\",\n            \"resource\": \"categories\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 23,\n            \"name\": \"store-categories\",\n            \"display_name\": \"Store Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.store\",\n            \"resource\": \"categories\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 24,\n            \"name\": \"update-categories\",\n            \"display_name\": \"Update Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.update\",\n            \"resource\": \"categories\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 75,\n            \"name\": \"destroy-contact-messages\",\n            \"display_name\": \"Destroy Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.destroy\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 71,\n            \"name\": \"index-contact-messages\",\n            \"display_name\": \"Index Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.index\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 72,\n            \"name\": \"show-contact-messages\",\n            \"display_name\": \"Show Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.show\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 73,\n            \"name\": \"store-contact-messages\",\n            \"display_name\": \"Store Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.store\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 74,\n            \"name\": \"update-contact-messages\",\n            \"display_name\": \"Update Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.update\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 90,\n            \"name\": \"destroy-conversations\",\n            \"display_name\": \"Destroy Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.destroy\",\n            \"resource\": \"conversations\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 86,\n            \"name\": \"index-conversations\",\n            \"display_name\": \"Index Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.index\",\n            \"resource\": \"conversations\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 87,\n            \"name\": \"show-conversations\",\n            \"display_name\": \"Show Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.show\",\n            \"resource\": \"conversations\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 88,\n            \"name\": \"store-conversations\",\n            \"display_name\": \"Store Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.store\",\n            \"resource\": \"conversations\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 89,\n            \"name\": \"update-conversations\",\n            \"display_name\": \"Update Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.update\",\n            \"resource\": \"conversations\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 5,\n            \"name\": \"destroy-countries\",\n            \"display_name\": \"Destroy Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.destroy\",\n            \"resource\": \"countries\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 1,\n            \"name\": \"index-countries\",\n            \"display_name\": \"Index Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.index\",\n            \"resource\": \"countries\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 2,\n            \"name\": \"show-countries\",\n            \"display_name\": \"Show Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.show\",\n            \"resource\": \"countries\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 3,\n            \"name\": \"store-countries\",\n            \"display_name\": \"Store Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.store\",\n            \"resource\": \"countries\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 4,\n            \"name\": \"update-countries\",\n            \"display_name\": \"Update Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.update\",\n            \"resource\": \"countries\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 85,\n            \"name\": \"destroy-dashboard-home\",\n            \"display_name\": \"Destroy Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.destroy\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 81,\n            \"name\": \"index-dashboard-home\",\n            \"display_name\": \"Index Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.index\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 82,\n            \"name\": \"show-dashboard-home\",\n            \"display_name\": \"Show Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.show\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 83,\n            \"name\": \"store-dashboard-home\",\n            \"display_name\": \"Store Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.store\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 84,\n            \"name\": \"update-dashboard-home\",\n            \"display_name\": \"Update Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.update\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 30,\n            \"name\": \"destroy-faqs\",\n            \"display_name\": \"Destroy Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.destroy\",\n            \"resource\": \"faqs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 26,\n            \"name\": \"index-faqs\",\n            \"display_name\": \"Index Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.index\",\n            \"resource\": \"faqs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 27,\n            \"name\": \"show-faqs\",\n            \"display_name\": \"Show Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.show\",\n            \"resource\": \"faqs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 28,\n            \"name\": \"store-faqs\",\n            \"display_name\": \"Store Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.store\",\n            \"resource\": \"faqs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 29,\n            \"name\": \"update-faqs\",\n            \"display_name\": \"Update Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.update\",\n            \"resource\": \"faqs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 65,\n            \"name\": \"destroy-feature-flags\",\n            \"display_name\": \"Destroy Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.destroy\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 61,\n            \"name\": \"index-feature-flags\",\n            \"display_name\": \"Index Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.index\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 62,\n            \"name\": \"show-feature-flags\",\n            \"display_name\": \"Show Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.show\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 63,\n            \"name\": \"store-feature-flags\",\n            \"display_name\": \"Store Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.store\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 64,\n            \"name\": \"update-feature-flags\",\n            \"display_name\": \"Update Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.update\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 10,\n            \"name\": \"destroy-governorates\",\n            \"display_name\": \"Destroy Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.destroy\",\n            \"resource\": \"governorates\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 6,\n            \"name\": \"index-governorates\",\n            \"display_name\": \"Index Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.index\",\n            \"resource\": \"governorates\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 7,\n            \"name\": \"show-governorates\",\n            \"display_name\": \"Show Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.show\",\n            \"resource\": \"governorates\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 8,\n            \"name\": \"store-governorates\",\n            \"display_name\": \"Store Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.store\",\n            \"resource\": \"governorates\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 9,\n            \"name\": \"update-governorates\",\n            \"display_name\": \"Update Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.update\",\n            \"resource\": \"governorates\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 95,\n            \"name\": \"destroy-internal-notes\",\n            \"display_name\": \"Destroy Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.destroy\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 91,\n            \"name\": \"index-internal-notes\",\n            \"display_name\": \"Index Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.index\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 92,\n            \"name\": \"show-internal-notes\",\n            \"display_name\": \"Show Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.show\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 93,\n            \"name\": \"store-internal-notes\",\n            \"display_name\": \"Store Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.store\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 94,\n            \"name\": \"update-internal-notes\",\n            \"display_name\": \"Update Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.update\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 80,\n            \"name\": \"destroy-notifications\",\n            \"display_name\": \"Destroy Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.destroy\",\n            \"resource\": \"notifications\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 76,\n            \"name\": \"index-notifications\",\n            \"display_name\": \"Index Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.index\",\n            \"resource\": \"notifications\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 77,\n            \"name\": \"show-notifications\",\n            \"display_name\": \"Show Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.show\",\n            \"resource\": \"notifications\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 78,\n            \"name\": \"store-notifications\",\n            \"display_name\": \"Store Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.store\",\n            \"resource\": \"notifications\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 79,\n            \"name\": \"update-notifications\",\n            \"display_name\": \"Update Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.update\",\n            \"resource\": \"notifications\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 15,\n            \"name\": \"destroy-regions\",\n            \"display_name\": \"Destroy Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.destroy\",\n            \"resource\": \"regions\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 11,\n            \"name\": \"index-regions\",\n            \"display_name\": \"Index Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.index\",\n            \"resource\": \"regions\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 12,\n            \"name\": \"show-regions\",\n            \"display_name\": \"Show Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.show\",\n            \"resource\": \"regions\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 13,\n            \"name\": \"store-regions\",\n            \"display_name\": \"Store Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.store\",\n            \"resource\": \"regions\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 14,\n            \"name\": \"update-regions\",\n            \"display_name\": \"Update Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.update\",\n            \"resource\": \"regions\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 55,\n            \"name\": \"destroy-roles\",\n            \"display_name\": \"Destroy Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.destroy\",\n            \"resource\": \"roles\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 51,\n            \"name\": \"index-roles\",\n            \"display_name\": \"Index Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.index\",\n            \"resource\": \"roles\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 52,\n            \"name\": \"show-roles\",\n            \"display_name\": \"Show Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.show\",\n            \"resource\": \"roles\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 53,\n            \"name\": \"store-roles\",\n            \"display_name\": \"Store Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.store\",\n            \"resource\": \"roles\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 54,\n            \"name\": \"update-roles\",\n            \"display_name\": \"Update Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.update\",\n            \"resource\": \"roles\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 60,\n            \"name\": \"destroy-settings\",\n            \"display_name\": \"Destroy Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.destroy\",\n            \"resource\": \"settings\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 56,\n            \"name\": \"index-settings\",\n            \"display_name\": \"Index Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.index\",\n            \"resource\": \"settings\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 57,\n            \"name\": \"show-settings\",\n            \"display_name\": \"Show Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.show\",\n            \"resource\": \"settings\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 58,\n            \"name\": \"store-settings\",\n            \"display_name\": \"Store Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.store\",\n            \"resource\": \"settings\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 59,\n            \"name\": \"update-settings\",\n            \"display_name\": \"Update Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.update\",\n            \"resource\": \"settings\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 20,\n            \"name\": \"destroy-shipping-zones\",\n            \"display_name\": \"Destroy Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.destroy\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 16,\n            \"name\": \"index-shipping-zones\",\n            \"display_name\": \"Index Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.index\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 17,\n            \"name\": \"show-shipping-zones\",\n            \"display_name\": \"Show Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.show\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 18,\n            \"name\": \"store-shipping-zones\",\n            \"display_name\": \"Store Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.store\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 19,\n            \"name\": \"update-shipping-zones\",\n            \"display_name\": \"Update Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.update\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 40,\n            \"name\": \"destroy-sliders\",\n            \"display_name\": \"Destroy Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.destroy\",\n            \"resource\": \"sliders\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 36,\n            \"name\": \"index-sliders\",\n            \"display_name\": \"Index Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.index\",\n            \"resource\": \"sliders\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 37,\n            \"name\": \"show-sliders\",\n            \"display_name\": \"Show Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.show\",\n            \"resource\": \"sliders\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 38,\n            \"name\": \"store-sliders\",\n            \"display_name\": \"Store Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.store\",\n            \"resource\": \"sliders\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 39,\n            \"name\": \"update-sliders\",\n            \"display_name\": \"Update Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.update\",\n            \"resource\": \"sliders\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 35,\n            \"name\": \"destroy-static-pages\",\n            \"display_name\": \"Destroy Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.destroy\",\n            \"resource\": \"static-pages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 31,\n            \"name\": \"index-static-pages\",\n            \"display_name\": \"Index Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.index\",\n            \"resource\": \"static-pages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 32,\n            \"name\": \"show-static-pages\",\n            \"display_name\": \"Show Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.show\",\n            \"resource\": \"static-pages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 33,\n            \"name\": \"store-static-pages\",\n            \"display_name\": \"Store Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.store\",\n            \"resource\": \"static-pages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 34,\n            \"name\": \"update-static-pages\",\n            \"display_name\": \"Update Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.update\",\n            \"resource\": \"static-pages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 50,\n            \"name\": \"destroy-supervisors\",\n            \"display_name\": \"Destroy Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.destroy\",\n            \"resource\": \"supervisors\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 46,\n            \"name\": \"index-supervisors\",\n            \"display_name\": \"Index Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.index\",\n            \"resource\": \"supervisors\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 47,\n            \"name\": \"show-supervisors\",\n            \"display_name\": \"Show Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.show\",\n            \"resource\": \"supervisors\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 48,\n            \"name\": \"store-supervisors\",\n            \"display_name\": \"Store Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.store\",\n            \"resource\": \"supervisors\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 49,\n            \"name\": \"update-supervisors\",\n            \"display_name\": \"Update Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.update\",\n            \"resource\": \"supervisors\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 45,\n            \"name\": \"destroy-users\",\n            \"display_name\": \"Destroy Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.destroy\",\n            \"resource\": \"users\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 41,\n            \"name\": \"index-users\",\n            \"display_name\": \"Index Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.index\",\n            \"resource\": \"users\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 42,\n            \"name\": \"show-users\",\n            \"display_name\": \"Show Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.show\",\n            \"resource\": \"users\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 43,\n            \"name\": \"store-users\",\n            \"display_name\": \"Store Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.store\",\n            \"resource\": \"users\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 44,\n            \"name\": \"update-users\",\n            \"display_name\": \"Update Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.update\",\n            \"resource\": \"users\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n            \"title\": null\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/permissions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"permissions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.permissions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Permissions retrieved\",\n    \"data\": [\n        {\n            \"id\": 70,\n            \"name\": \"destroy-audit-logs\",\n            \"display_name\": \"Destroy Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.destroy\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 66,\n            \"name\": \"index-audit-logs\",\n            \"display_name\": \"Index Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.index\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 67,\n            \"name\": \"show-audit-logs\",\n            \"display_name\": \"Show Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.show\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 68,\n            \"name\": \"store-audit-logs\",\n            \"display_name\": \"Store Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.store\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 69,\n            \"name\": \"update-audit-logs\",\n            \"display_name\": \"Update Audit logs\",\n            \"group\": \"audit-logs\",\n            \"route_name\": \"admin.audit-logs.update\",\n            \"resource\": \"audit-logs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 25,\n            \"name\": \"destroy-categories\",\n            \"display_name\": \"Destroy Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.destroy\",\n            \"resource\": \"categories\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 21,\n            \"name\": \"index-categories\",\n            \"display_name\": \"Index Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.index\",\n            \"resource\": \"categories\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 22,\n            \"name\": \"show-categories\",\n            \"display_name\": \"Show Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.show\",\n            \"resource\": \"categories\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 23,\n            \"name\": \"store-categories\",\n            \"display_name\": \"Store Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.store\",\n            \"resource\": \"categories\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 24,\n            \"name\": \"update-categories\",\n            \"display_name\": \"Update Categories\",\n            \"group\": \"categories\",\n            \"route_name\": \"admin.categories.update\",\n            \"resource\": \"categories\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 75,\n            \"name\": \"destroy-contact-messages\",\n            \"display_name\": \"Destroy Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.destroy\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 71,\n            \"name\": \"index-contact-messages\",\n            \"display_name\": \"Index Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.index\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 72,\n            \"name\": \"show-contact-messages\",\n            \"display_name\": \"Show Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.show\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 73,\n            \"name\": \"store-contact-messages\",\n            \"display_name\": \"Store Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.store\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 74,\n            \"name\": \"update-contact-messages\",\n            \"display_name\": \"Update Contact messages\",\n            \"group\": \"contact-messages\",\n            \"route_name\": \"admin.contact-messages.update\",\n            \"resource\": \"contact-messages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 90,\n            \"name\": \"destroy-conversations\",\n            \"display_name\": \"Destroy Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.destroy\",\n            \"resource\": \"conversations\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 86,\n            \"name\": \"index-conversations\",\n            \"display_name\": \"Index Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.index\",\n            \"resource\": \"conversations\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 87,\n            \"name\": \"show-conversations\",\n            \"display_name\": \"Show Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.show\",\n            \"resource\": \"conversations\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 88,\n            \"name\": \"store-conversations\",\n            \"display_name\": \"Store Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.store\",\n            \"resource\": \"conversations\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 89,\n            \"name\": \"update-conversations\",\n            \"display_name\": \"Update Conversations\",\n            \"group\": \"conversations\",\n            \"route_name\": \"admin.conversations.update\",\n            \"resource\": \"conversations\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 5,\n            \"name\": \"destroy-countries\",\n            \"display_name\": \"Destroy Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.destroy\",\n            \"resource\": \"countries\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 1,\n            \"name\": \"index-countries\",\n            \"display_name\": \"Index Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.index\",\n            \"resource\": \"countries\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 2,\n            \"name\": \"show-countries\",\n            \"display_name\": \"Show Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.show\",\n            \"resource\": \"countries\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 3,\n            \"name\": \"store-countries\",\n            \"display_name\": \"Store Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.store\",\n            \"resource\": \"countries\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 4,\n            \"name\": \"update-countries\",\n            \"display_name\": \"Update Countries\",\n            \"group\": \"countries\",\n            \"route_name\": \"admin.countries.update\",\n            \"resource\": \"countries\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 85,\n            \"name\": \"destroy-dashboard-home\",\n            \"display_name\": \"Destroy Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.destroy\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 81,\n            \"name\": \"index-dashboard-home\",\n            \"display_name\": \"Index Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.index\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 82,\n            \"name\": \"show-dashboard-home\",\n            \"display_name\": \"Show Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.show\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 83,\n            \"name\": \"store-dashboard-home\",\n            \"display_name\": \"Store Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.store\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 84,\n            \"name\": \"update-dashboard-home\",\n            \"display_name\": \"Update Dashboard home\",\n            \"group\": \"dashboard-home\",\n            \"route_name\": \"admin.dashboard-home.update\",\n            \"resource\": \"dashboard-home\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 30,\n            \"name\": \"destroy-faqs\",\n            \"display_name\": \"Destroy Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.destroy\",\n            \"resource\": \"faqs\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 26,\n            \"name\": \"index-faqs\",\n            \"display_name\": \"Index Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.index\",\n            \"resource\": \"faqs\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 27,\n            \"name\": \"show-faqs\",\n            \"display_name\": \"Show Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.show\",\n            \"resource\": \"faqs\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 28,\n            \"name\": \"store-faqs\",\n            \"display_name\": \"Store Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.store\",\n            \"resource\": \"faqs\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 29,\n            \"name\": \"update-faqs\",\n            \"display_name\": \"Update Faqs\",\n            \"group\": \"faqs\",\n            \"route_name\": \"admin.faqs.update\",\n            \"resource\": \"faqs\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 65,\n            \"name\": \"destroy-feature-flags\",\n            \"display_name\": \"Destroy Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.destroy\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 61,\n            \"name\": \"index-feature-flags\",\n            \"display_name\": \"Index Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.index\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 62,\n            \"name\": \"show-feature-flags\",\n            \"display_name\": \"Show Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.show\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 63,\n            \"name\": \"store-feature-flags\",\n            \"display_name\": \"Store Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.store\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 64,\n            \"name\": \"update-feature-flags\",\n            \"display_name\": \"Update Feature flags\",\n            \"group\": \"feature-flags\",\n            \"route_name\": \"admin.feature-flags.update\",\n            \"resource\": \"feature-flags\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 10,\n            \"name\": \"destroy-governorates\",\n            \"display_name\": \"Destroy Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.destroy\",\n            \"resource\": \"governorates\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 6,\n            \"name\": \"index-governorates\",\n            \"display_name\": \"Index Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.index\",\n            \"resource\": \"governorates\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 7,\n            \"name\": \"show-governorates\",\n            \"display_name\": \"Show Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.show\",\n            \"resource\": \"governorates\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 8,\n            \"name\": \"store-governorates\",\n            \"display_name\": \"Store Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.store\",\n            \"resource\": \"governorates\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 9,\n            \"name\": \"update-governorates\",\n            \"display_name\": \"Update Governorates\",\n            \"group\": \"governorates\",\n            \"route_name\": \"admin.governorates.update\",\n            \"resource\": \"governorates\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 95,\n            \"name\": \"destroy-internal-notes\",\n            \"display_name\": \"Destroy Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.destroy\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 91,\n            \"name\": \"index-internal-notes\",\n            \"display_name\": \"Index Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.index\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 92,\n            \"name\": \"show-internal-notes\",\n            \"display_name\": \"Show Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.show\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 93,\n            \"name\": \"store-internal-notes\",\n            \"display_name\": \"Store Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.store\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 94,\n            \"name\": \"update-internal-notes\",\n            \"display_name\": \"Update Internal notes\",\n            \"group\": \"internal-notes\",\n            \"route_name\": \"admin.internal-notes.update\",\n            \"resource\": \"internal-notes\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 80,\n            \"name\": \"destroy-notifications\",\n            \"display_name\": \"Destroy Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.destroy\",\n            \"resource\": \"notifications\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 76,\n            \"name\": \"index-notifications\",\n            \"display_name\": \"Index Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.index\",\n            \"resource\": \"notifications\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 77,\n            \"name\": \"show-notifications\",\n            \"display_name\": \"Show Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.show\",\n            \"resource\": \"notifications\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 78,\n            \"name\": \"store-notifications\",\n            \"display_name\": \"Store Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.store\",\n            \"resource\": \"notifications\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 79,\n            \"name\": \"update-notifications\",\n            \"display_name\": \"Update Notifications\",\n            \"group\": \"notifications\",\n            \"route_name\": \"admin.notifications.update\",\n            \"resource\": \"notifications\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 15,\n            \"name\": \"destroy-regions\",\n            \"display_name\": \"Destroy Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.destroy\",\n            \"resource\": \"regions\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 11,\n            \"name\": \"index-regions\",\n            \"display_name\": \"Index Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.index\",\n            \"resource\": \"regions\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 12,\n            \"name\": \"show-regions\",\n            \"display_name\": \"Show Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.show\",\n            \"resource\": \"regions\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 13,\n            \"name\": \"store-regions\",\n            \"display_name\": \"Store Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.store\",\n            \"resource\": \"regions\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 14,\n            \"name\": \"update-regions\",\n            \"display_name\": \"Update Regions\",\n            \"group\": \"regions\",\n            \"route_name\": \"admin.regions.update\",\n            \"resource\": \"regions\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 55,\n            \"name\": \"destroy-roles\",\n            \"display_name\": \"Destroy Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.destroy\",\n            \"resource\": \"roles\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 51,\n            \"name\": \"index-roles\",\n            \"display_name\": \"Index Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.index\",\n            \"resource\": \"roles\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 52,\n            \"name\": \"show-roles\",\n            \"display_name\": \"Show Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.show\",\n            \"resource\": \"roles\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 53,\n            \"name\": \"store-roles\",\n            \"display_name\": \"Store Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.store\",\n            \"resource\": \"roles\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 54,\n            \"name\": \"update-roles\",\n            \"display_name\": \"Update Roles\",\n            \"group\": \"roles\",\n            \"route_name\": \"admin.roles.update\",\n            \"resource\": \"roles\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 60,\n            \"name\": \"destroy-settings\",\n            \"display_name\": \"Destroy Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.destroy\",\n            \"resource\": \"settings\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 56,\n            \"name\": \"index-settings\",\n            \"display_name\": \"Index Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.index\",\n            \"resource\": \"settings\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 57,\n            \"name\": \"show-settings\",\n            \"display_name\": \"Show Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.show\",\n            \"resource\": \"settings\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 58,\n            \"name\": \"store-settings\",\n            \"display_name\": \"Store Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.store\",\n            \"resource\": \"settings\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 59,\n            \"name\": \"update-settings\",\n            \"display_name\": \"Update Settings\",\n            \"group\": \"settings\",\n            \"route_name\": \"admin.settings.update\",\n            \"resource\": \"settings\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 20,\n            \"name\": \"destroy-shipping-zones\",\n            \"display_name\": \"Destroy Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.destroy\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 16,\n            \"name\": \"index-shipping-zones\",\n            \"display_name\": \"Index Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.index\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 17,\n            \"name\": \"show-shipping-zones\",\n            \"display_name\": \"Show Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.show\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 18,\n            \"name\": \"store-shipping-zones\",\n            \"display_name\": \"Store Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.store\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 19,\n            \"name\": \"update-shipping-zones\",\n            \"display_name\": \"Update Shipping zones\",\n            \"group\": \"shipping-zones\",\n            \"route_name\": \"admin.shipping-zones.update\",\n            \"resource\": \"shipping-zones\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 40,\n            \"name\": \"destroy-sliders\",\n            \"display_name\": \"Destroy Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.destroy\",\n            \"resource\": \"sliders\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 36,\n            \"name\": \"index-sliders\",\n            \"display_name\": \"Index Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.index\",\n            \"resource\": \"sliders\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 37,\n            \"name\": \"show-sliders\",\n            \"display_name\": \"Show Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.show\",\n            \"resource\": \"sliders\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 38,\n            \"name\": \"store-sliders\",\n            \"display_name\": \"Store Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.store\",\n            \"resource\": \"sliders\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 39,\n            \"name\": \"update-sliders\",\n            \"display_name\": \"Update Sliders\",\n            \"group\": \"sliders\",\n            \"route_name\": \"admin.sliders.update\",\n            \"resource\": \"sliders\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 35,\n            \"name\": \"destroy-static-pages\",\n            \"display_name\": \"Destroy Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.destroy\",\n            \"resource\": \"static-pages\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 31,\n            \"name\": \"index-static-pages\",\n            \"display_name\": \"Index Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.index\",\n            \"resource\": \"static-pages\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 32,\n            \"name\": \"show-static-pages\",\n            \"display_name\": \"Show Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.show\",\n            \"resource\": \"static-pages\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 33,\n            \"name\": \"store-static-pages\",\n            \"display_name\": \"Store Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.store\",\n            \"resource\": \"static-pages\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 34,\n            \"name\": \"update-static-pages\",\n            \"display_name\": \"Update Static pages\",\n            \"group\": \"static-pages\",\n            \"route_name\": \"admin.static-pages.update\",\n            \"resource\": \"static-pages\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 50,\n            \"name\": \"destroy-supervisors\",\n            \"display_name\": \"Destroy Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.destroy\",\n            \"resource\": \"supervisors\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 46,\n            \"name\": \"index-supervisors\",\n            \"display_name\": \"Index Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.index\",\n            \"resource\": \"supervisors\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 47,\n            \"name\": \"show-supervisors\",\n            \"display_name\": \"Show Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.show\",\n            \"resource\": \"supervisors\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 48,\n            \"name\": \"store-supervisors\",\n            \"display_name\": \"Store Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.store\",\n            \"resource\": \"supervisors\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 49,\n            \"name\": \"update-supervisors\",\n            \"display_name\": \"Update Supervisors\",\n            \"group\": \"supervisors\",\n            \"route_name\": \"admin.supervisors.update\",\n            \"resource\": \"supervisors\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 45,\n            \"name\": \"destroy-users\",\n            \"display_name\": \"Destroy Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.destroy\",\n            \"resource\": \"users\",\n            \"action\": \"destroy\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 41,\n            \"name\": \"index-users\",\n            \"display_name\": \"Index Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.index\",\n            \"resource\": \"users\",\n            \"action\": \"index\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 42,\n            \"name\": \"show-users\",\n            \"display_name\": \"Show Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.show\",\n            \"resource\": \"users\",\n            \"action\": \"show\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 43,\n            \"name\": \"store-users\",\n            \"display_name\": \"Store Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.store\",\n            \"resource\": \"users\",\n            \"action\": \"store\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        },\n        {\n            \"id\": 44,\n            \"name\": \"update-users\",\n            \"display_name\": \"Update Users\",\n            \"group\": \"users\",\n            \"route_name\": \"admin.users.update\",\n            \"resource\": \"users\",\n            \"action\": \"update\",\n            \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n            \"title\": null\n        }\n    ]\n}"
								}
							]
						},
						{
							"name": "List All Roles",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.roles.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.roles.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"roles\": [\n            {\n                \"id\": 1,\n                \"name\": \"Existing Role\",\n                \"slug\": \"existing-role-6a86ee1977aba\",\n                \"parent_id\": null,\n                \"level\": 0,\n                \"is_active\": true,\n                \"permissions\": [],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/roles?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/roles\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.roles.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"roles\": [\n            {\n                \"id\": 1,\n                \"name\": \"Existing Role\",\n                \"slug\": \"existing-role-6a86ee759cae6\",\n                \"parent_id\": null,\n                \"level\": 0,\n                \"is_active\": true,\n                \"permissions\": [],\n                \"created_at\": \"2026-08-20 12:09:25\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/roles?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/roles\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.roles.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"roles\": [\n            {\n                \"id\": 1,\n                \"name\": \"Existing Role\",\n                \"slug\": \"existing-role-6a86ee8abc050\",\n                \"parent_id\": null,\n                \"level\": 0,\n                \"is_active\": true,\n                \"permissions\": [],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/roles?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/roles?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/roles\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Supervisors",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.supervisors.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.supervisors.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"users\": [\n            {\n                \"id\": 28,\n                \"full_name\": \"Mrs. Alexandrine Waelchi\",\n                \"email\": \"vena01@example.com\",\n                \"phone\": \"1175962205\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"Admin\",\n                \"is_active\": true,\n                \"roles\": [\n                    {\n                        \"id\": 6,\n                        \"name\": \"Supervisor Role\",\n                        \"slug\": \"supervisor-role-6a86ee198c8c8\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20 12:07:53\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/supervisors\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.supervisors.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"users\": [\n            {\n                \"id\": 138,\n                \"full_name\": \"Eryn Terry DVM\",\n                \"email\": \"stanton.phyllis@example.org\",\n                \"phone\": \"1513388058\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"Admin\",\n                \"is_active\": true,\n                \"roles\": [\n                    {\n                        \"id\": 6,\n                        \"name\": \"Supervisor Role\",\n                        \"slug\": \"supervisor-role-6a86ee75bad47\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20 12:09:25\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/supervisors\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.supervisors.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"users\": [\n            {\n                \"id\": 138,\n                \"full_name\": \"Jeromy Kautzer\",\n                \"email\": \"lcorwin@example.org\",\n                \"phone\": \"1570935034\",\n                \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n                \"user_type\": \"Admin\",\n                \"is_active\": true,\n                \"roles\": [\n                    {\n                        \"id\": 6,\n                        \"name\": \"Supervisor Role\",\n                        \"slug\": \"supervisor-role-6a86ee8adabae\"\n                    }\n                ],\n                \"created_at\": \"2026-08-20 12:09:46\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/supervisors?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/supervisors\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Role Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles/:role",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles",
										":role"
									],
									"variable": [
										{
											"key": "role",
											"value": "3",
											"description": "Role ID"
										}
									]
								},
								"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"name\": \"Support Agent\",\n        \"slug\": \"support-agent-6a86ee1979f23\",\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"permissions\": [\n            {\n                \"id\": 25,\n                \"name\": \"destroy-categories\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"categories\"\n            },\n            {\n                \"id\": 70,\n                \"name\": \"destroy-audit-logs\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"audit-logs\"\n            },\n            {\n                \"id\": 75,\n                \"name\": \"destroy-contact-messages\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"contact-messages\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"updated_at\": \"2026-08-20 12:07:53\",\n        \"en\": {\n            \"name\": \"Support Agent\"\n        },\n        \"ar\": {\n            \"name\": \"موظف دعم\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"name\": \"Support Agent\",\n        \"slug\": \"support-agent-6a86ee75a03cf\",\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"permissions\": [\n            {\n                \"id\": 25,\n                \"name\": \"destroy-categories\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"categories\"\n            },\n            {\n                \"id\": 70,\n                \"name\": \"destroy-audit-logs\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"audit-logs\"\n            },\n            {\n                \"id\": 75,\n                \"name\": \"destroy-contact-messages\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"contact-messages\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"updated_at\": \"2026-08-20 12:09:25\",\n        \"en\": {\n            \"name\": \"Support Agent\"\n        },\n        \"ar\": {\n            \"name\": \"موظف دعم\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"name\": \"Support Agent\",\n        \"slug\": \"support-agent-6a86ee8abecc3\",\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"permissions\": [\n            {\n                \"id\": 25,\n                \"name\": \"destroy-categories\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"categories\"\n            },\n            {\n                \"id\": 70,\n                \"name\": \"destroy-audit-logs\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"audit-logs\"\n            },\n            {\n                \"id\": 75,\n                \"name\": \"destroy-contact-messages\",\n                \"slug\": null,\n                \"action\": \"destroy\",\n                \"resource\": \"contact-messages\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"updated_at\": \"2026-08-20 12:09:46\",\n        \"en\": {\n            \"name\": \"Support Agent\"\n        },\n        \"ar\": {\n            \"name\": \"موظف دعم\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Supervisor Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors",
										":supervisor"
									],
									"variable": [
										{
											"key": "supervisor",
											"value": "2",
											"description": "Supervisor ID"
										}
									]
								},
								"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 29,\n        \"full_name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"Admin\",\n        \"is_active\": true,\n        \"roles\": [\n            {\n                \"id\": 6,\n                \"name\": \"Supervisor Role\",\n                \"slug\": \"supervisor-role-6a86ee198c8c8\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:07:53\",\n        \"permissions\": [],\n        \"updated_at\": \"2026-08-20 12:07:53\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"full_name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"Admin\",\n        \"is_active\": true,\n        \"roles\": [\n            {\n                \"id\": 6,\n                \"name\": \"Supervisor Role\",\n                \"slug\": \"supervisor-role-6a86ee75bad47\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:09:25\",\n        \"permissions\": [],\n        \"updated_at\": \"2026-08-20 12:09:25\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"full_name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"image\": \"https://ui-avatars.com/api/?name=U&background=dbeafe&color=1d4ed8&size=200\",\n        \"user_type\": \"Admin\",\n        \"is_active\": true,\n        \"roles\": [\n            {\n                \"id\": 6,\n                \"name\": \"Supervisor Role\",\n                \"slug\": \"supervisor-role-6a86ee8adabae\"\n            }\n        ],\n        \"created_at\": \"2026-08-20 12:09:46\",\n        \"permissions\": [],\n        \"updated_at\": \"2026-08-20 12:09:46\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Role",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        4,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles"
									]
								},
								"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `4`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee1979f23\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"name\": \"Support Agent\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Slug field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate slug",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This slug is already in use.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee75a03cf\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"name\": \"Support Agent\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Slug field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate slug",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This slug is already in use.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee8abecc3\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"name\": \"Support Agent\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Slug field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate slug",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"slug\": \"support-agent-6a86ee1979f23\",\n    \"is_active\": true,\n    \"permissions\": [\n        70,\n        25,\n        75\n    ],\n    \"en\": {\n        \"name\": \"Support Agent\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles"
											]
										},
										"description": "**Route:** `admin.roles.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** required\n- **Example:** `example-slug`\n- **Validation rules:** `required|string|max:50|unique:roles,slug,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"This slug is already in use.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Supervisor",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 3\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors"
									]
								},
								"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `3`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 29,\n        \"name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"active\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your full name.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid role_id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected role does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"active\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your full name.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid role_id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected role does not exist.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"name\": \"New Supervisor\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"active\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your full name.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid role_id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"New Supervisor\",\n    \"email\": \"supervisor.store@example.com\",\n    \"phone\": \"1077700001\",\n    \"password\": \"password123\",\n    \"is_active\": true,\n    \"role_id\": 6\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors"
											]
										},
										"description": "**Route:** `admin.supervisors.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** required\n- **Example:** `user@example.com`\n- **Validation rules:** `required|email|max:255|unique:users,email,NULL,id`\n- `required` — must be provided.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Password123!`\n- **Validation rules:** `required|nullable|string|min:8`\n- `required` — must be provided.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:roles,id`\n- `required` — must be provided.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected role does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Role",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles/:role",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles",
										":role"
									],
									"variable": [
										{
											"key": "role",
											"value": "3",
											"description": "Role ID"
										}
									]
								},
								"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee1979f23\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"name\": \"Support Agent (Updated)\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid permission id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected Permission is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee75a03cf\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"name\": \"Support Agent (Updated)\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid permission id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected Permission is invalid.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"slug\": \"support-agent-6a86ee8abecc3\",\n        \"description\": null,\n        \"parent_id\": null,\n        \"level\": 0,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"name\": \"Support Agent (Updated)\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - invalid permission id",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Support Agent (Updated)\"\n    },\n    \"ar\": {\n        \"name\": \"موظف دعم (محدث)\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "2",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `slug`\n- **Description:** Slug\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `sometimes|string|max:50|unique:roles,slug,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n- `unique:roles,slug,NULL,id` — must be unique (roles, slug, NULL, id).\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `parent_id`\n- **Description:** Parent Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:roles,id`\n- `nullable` — may be null.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `permissions`\n- **Description:** Permissions\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[1]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `permissions.*`\n- **Description:** Permission\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `exists:permissions,id`\n- `exists:permissions,id` — must reference an existing record (permissions, id).\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected Permission is invalid.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Supervisor",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors",
										":supervisor"
									],
									"variable": [
										{
											"key": "supervisor",
											"value": "2",
											"description": "Supervisor ID"
										}
									]
								},
								"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 29,\n        \"name\": \"Updated Supervisor Name\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"suspended\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"updated_at\": \"2026-08-20T12:07:53.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"name\": \"Updated Supervisor Name\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"suspended\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:25.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 139,\n        \"name\": \"Updated Supervisor Name\",\n        \"email\": \"supervisor.store@example.com\",\n        \"phone\": \"1077700001\",\n        \"username\": null,\n        \"user_type\": \"admin\",\n        \"status\": \"suspended\",\n        \"email_verified_at\": null,\n        \"phone_verified_at\": null,\n        \"locale\": \"ar\",\n        \"allow_notifications\": true,\n        \"timezone\": \"Asia/Riyadh\",\n        \"avatar_path\": null,\n        \"last_login_at\": null,\n        \"suspended_at\": null,\n        \"suspension_reason\": null,\n        \"created_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:46.000000Z\",\n        \"deleted_at\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"full_name\": \"Updated Supervisor Name\",\n    \"is_active\": false\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "29",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `full_name`\n- **Description:** Full Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `email`\n- **Description:** Email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `user@example.com`\n- **Validation rules:** `sometimes|email|max:255|unique:users,email,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `email` — must be a valid email address.\n- `max:255` — must not exceed 255.\n- `unique:users,email,NULL,id` — must be unique (users, email, NULL, id).\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20|unique:users,phone,NULL,id`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n- `unique:users,phone,NULL,id` — must be unique (users, phone, NULL, id).\n### `password`\n- **Description:** Password\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Password123!`\n- **Validation rules:** `sometimes|nullable|string|min:8`\n- `sometimes` — validated only when the field is present.\n- `nullable` — may be null.\n- `string` — must be text.\n- `min:8` — must be at least 8.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `role_id`\n- **Description:** Role\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:roles,id`\n- `sometimes` — validated only when the field is present.\n- `exists:roles,id` — must reference an existing record (roles, id).\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter a valid email address.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Role",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles/:role",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles",
										":role"
									],
									"variable": [
										{
											"key": "role",
											"value": "3",
											"description": "Role ID"
										}
									]
								},
								"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/:role",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												":role"
											],
											"variable": [
												{
													"key": "role",
													"value": "1",
													"description": "Role ID"
												}
											]
										},
										"description": "**Route:** `admin.roles.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Supervisor",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors",
										":supervisor"
									],
									"variable": [
										{
											"key": "supervisor",
											"value": "2",
											"description": "Supervisor ID"
										}
									]
								},
								"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - already deleted",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/:supervisor",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												":supervisor"
											],
											"variable": [
												{
													"key": "supervisor",
													"value": "1",
													"description": "Supervisor ID"
												}
											]
										},
										"description": "**Route:** `admin.supervisors.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Roles)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/roles/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"roles",
										"bulk"
									]
								},
								"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/roles/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"roles",
												"bulk"
											]
										},
										"description": "**Route:** `admin.roles.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Supervisors)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"supervisors",
										"bulk"
									]
								},
								"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/supervisors/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"supervisors",
												"bulk"
											]
										},
										"description": "**Route:** `admin.supervisors.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "16. Addresses (Reference)",
					"item": [
						{
							"name": "List All Addresses",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.addresses.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.addresses.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Addresses retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"title\": \"Home\",\n                \"address\": \"10 Corniche Street\",\n                \"is_default\": true,\n                \"user\": {\n                    \"id\": 8,\n                    \"name\": \"Ed Turcotte\",\n                    \"email\": \"walter.carmella@example.org\",\n                    \"user_type\": \"individual\"\n                },\n                \"country\": {\n                    \"id\": 1,\n                    \"name\": null\n                },\n                \"governorate\": {\n                    \"id\": 1,\n                    \"name\": \"Cairo\"\n                },\n                \"region\": {\n                    \"id\": 1,\n                    \"name\": \"Maadi\"\n                },\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/addresses?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/addresses?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/addresses?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/addresses\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Address Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `admin.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Home\",\n        \"address\": \"10 Corniche Street\",\n        \"is_default\": true,\n        \"user\": {\n            \"id\": 8,\n            \"name\": \"Ed Turcotte\",\n            \"email\": \"walter.carmella@example.org\",\n            \"user_type\": \"individual\"\n        },\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"lat\": 30.05,\n        \"lng\": 31.24,\n        \"phone\": \"1000000001\",\n        \"phone_code\": \"20\",\n        \"notes\": null,\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Address",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"user_id\": 8,\n    \"title\": \"Home\",\n    \"address\": \"10 Corniche Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"lat\": 30.05,\n    \"lng\": 31.24,\n    \"phone\": \"1000000001\",\n    \"phone_code\": \"20\",\n    \"is_default\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses"
									]
								},
								"description": "**Route:** `admin.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_id\": 8,\n    \"title\": \"Home\",\n    \"address\": \"10 Corniche Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"lat\": 30.05,\n    \"lng\": 31.24,\n    \"phone\": \"1000000001\",\n    \"phone_code\": \"20\",\n    \"is_default\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses"
											]
										},
										"description": "**Route:** `admin.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Home\",\n        \"address\": \"10 Corniche Street\",\n        \"is_default\": true,\n        \"user\": {\n            \"id\": 8,\n            \"name\": \"Ed Turcotte\",\n            \"email\": \"walter.carmella@example.org\",\n            \"user_type\": \"individual\"\n        },\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"lat\": 30.05,\n        \"lng\": 31.24,\n        \"phone\": \"1000000001\",\n        \"phone_code\": \"20\",\n        \"notes\": null,\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"user_id\": 8,\n    \"title\": \"Home\",\n    \"address\": \"10 Corniche Street\",\n    \"country_id\": 1,\n    \"governorate_id\": 1,\n    \"region_id\": 1,\n    \"lat\": 30.05,\n    \"lng\": 31.24,\n    \"phone\": \"1000000001\",\n    \"phone_code\": \"20\",\n    \"is_default\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses"
											]
										},
										"description": "**Route:** `admin.addresses.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:users,id`\n- `required` — must be provided.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:100`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please specify a user.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Address",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"20 Corniche Street Updated\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `admin.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"20 Corniche Street Updated\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"title\": \"Office\",\n        \"address\": \"20 Corniche Street Updated\",\n        \"is_default\": true,\n        \"user\": {\n            \"id\": 8,\n            \"name\": \"Ed Turcotte\",\n            \"email\": \"walter.carmella@example.org\",\n            \"user_type\": \"individual\"\n        },\n        \"country\": {\n            \"id\": 1,\n            \"name\": null\n        },\n        \"governorate\": {\n            \"id\": 1,\n            \"name\": \"Cairo\"\n        },\n        \"region\": {\n            \"id\": 1,\n            \"name\": \"Maadi\"\n        },\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"lat\": 30.05,\n        \"lng\": 31.24,\n        \"phone\": \"1000000001\",\n        \"phone_code\": \"20\",\n        \"notes\": null,\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"title\": \"Office\",\n    \"address\": \"20 Corniche Street Updated\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `user_id`\n- **Description:** Customer\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:users,id`\n- `sometimes` — validated only when the field is present.\n- `exists:users,id` — must reference an existing record (users, id).\n### `title`\n- **Description:** Title\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `address`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:governorates,id`\n- `nullable` — may be null.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `region_id`\n- **Description:** Region\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:regions,id`\n- `nullable` — may be null.\n- `exists:regions,id` — must reference an existing record (regions, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `phone`\n- **Description:** Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `nullable|string|max:20`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `phone_code`\n- **Description:** Phone code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `nullable|string|max:5`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n### `notes`\n- **Description:** Notes\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `is_default`\n- **Description:** Default\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Address",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses/:address",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses",
										":address"
									],
									"variable": [
										{
											"key": "address",
											"value": "{{address_id}}",
											"description": "Address ID"
										}
									]
								},
								"description": "**Route:** `admin.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/:address",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												":address"
											],
											"variable": [
												{
													"key": "address",
													"value": "1",
													"description": "Address ID"
												}
											]
										},
										"description": "**Route:** `admin.addresses.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/addresses/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"addresses",
										"bulk"
									]
								},
								"description": "**Route:** `admin.addresses.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												"bulk"
											]
										},
										"description": "**Route:** `admin.addresses.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												"bulk"
											]
										},
										"description": "**Route:** `admin.addresses.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/addresses/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"addresses",
												"bulk"
											]
										},
										"description": "**Route:** `admin.addresses.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "17. Internal Notes",
					"item": [
						{
							"name": "List All Internal notes",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										":entityType",
										":entityId",
										"notes"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									],
									"variable": [
										{
											"key": "entityType",
											"value": "order",
											"description": "EntityType ID"
										},
										{
											"key": "entityId",
											"value": "1",
											"description": "EntityId ID"
										}
									]
								},
								"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - empty - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown order id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - invalid entityType (route constraint)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown order id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - invalid entityType (route constraint)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - empty - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - still empty due to store bug - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown order id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - invalid entityType (route constraint)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Internal note",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"note\": \"value\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										":entityType",
										":entityId",
										"notes"
									],
									"variable": [
										{
											"key": "entityType",
											"value": "order",
											"description": "EntityType ID"
										},
										{
											"key": "entityId",
											"value": "1",
											"description": "EntityId ID"
										}
									]
								},
								"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Fixed:** an earlier pass of this doc flagged a real P0 here — `Conversation`, `Message`, and `InternalNote` all `use HasUuids` despite their `id` columns being plain auto-increment `BIGINT`s, so every create threw `SQLSTATE[01000]: Data truncated for column 'id'`. Fixed by dropping `HasUuids` from all three models (kept only on models whose primary key really is a UUID, like `Order`/`Contract`). See `app/Models/Conversation.php`, `app/Models/Message.php`, `app/Models/InternalNote.php`."
							},
							"response": [
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - order",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - contract",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - user",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - order",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - contract",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - user",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - order",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - contract",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - user",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"note\": \"value\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `note`\n- **Description:** Note\n- **Type:** `string`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Note field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Internal note",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										":entityType",
										":entityId",
										"notes",
										":id"
									],
									"variable": [
										{
											"key": "entityType",
											"value": "order",
											"description": "EntityType ID"
										},
										{
											"key": "entityId",
											"value": "1",
											"description": "EntityId ID"
										},
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - order",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - contract",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - user",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/:entityType/:entityId/notes/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												":entityType",
												":entityId",
												"notes",
												":id"
											],
											"variable": [
												{
													"key": "entityType",
													"value": "1",
													"description": "EntityType ID"
												},
												{
													"key": "entityId",
													"value": "1",
													"description": "EntityId ID"
												},
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.internal-notes.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "18. Media / File Upload",
					"item": [
						{
							"name": "List All Media",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.media.index`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Media list retrieved successfully\",\n    \"data\": []\n}"
								}
							]
						},
						{
							"name": "Create New Medium",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
											"type": "file"
										},
										{
											"key": "collection",
											"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/media",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media"
									]
								},
								"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.",
													"type": "file"
												},
												{
													"key": "collection",
													"description": "### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/media",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media"
											]
										},
										"description": "**Route:** `shared.media.store`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240|mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n- `mimes:jpg,jpeg,png,gif,webp,pdf,avi,mov,wmv,flv,mkv,mp4,mp3,wav` — custom validation rule.\n### `collection`\n- **Description:** Collection\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Upload Client",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"media_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "file",
											"value": "",
											"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
											"type": "file"
										},
										{
											"key": "type",
											"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/upload",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"upload"
									]
								},
								"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** public endpoint, no bearer token required."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"File uploaded successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"hash\": \"e428a7c4613e522faab63cdd1ef68f80\",\n        \"url\": \"/storage/uploads/general/b7dc8979-b6bb-49ac-aa43-9a2939f420e0.webp\",\n        \"mime_type\": \"image/webp\",\n        \"size\": 44,\n        \"original_name\": \"photo.jpg\",\n        \"variants\": {\n            \"thumbnail\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_thumbnail.webp\",\n            \"medium\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_medium.webp\",\n            \"large\": \"/storage/uploads/general/variants/b7dc8979-b6bb-49ac-aa43-9a2939f420e0_large.webp\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "formdata",
											"formdata": [
												{
													"key": "file",
													"value": "",
													"description": "### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `null`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.",
													"type": "file"
												},
												{
													"key": "type",
													"description": "### `type`\n- **Description:** Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `null`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.",
													"type": "text"
												}
											]
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/upload",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"upload"
											]
										},
										"description": "**Route:** `client.upload`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nSend as `multipart/form-data`. Select a local file for fields marked as `file`.\n\n**Field documentation:**\n### `file`\n- **Description:** File\n- **Type:** `file`\n- **Required:** required\n- **Example:** `value`\n- **Validation rules:** `required|file|max:10240`\n- `required` — must be provided.\n- `file` — custom validation rule.\n- `max:10240` — must not exceed 10240.\n### `type`\n- **Description:** File Type\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `image`\n- **Validation rules:** `nullable|string|in:image,document,video,audio`\n- `nullable` — may be null.\n- `string` — must be text.\n- `in:image,document,video,audio` — must be one of: image, document, video, audio.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a file to upload.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Medium",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/media/:media_id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"media",
										":media_id"
									],
									"variable": [
										{
											"key": "media_id",
											"value": "{{media_id}}",
											"description": "Media_id ID"
										}
									]
								},
								"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/media/:media_id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"media",
												":media_id"
											],
											"variable": [
												{
													"key": "media_id",
													"value": "1",
													"description": "Media_id ID"
												}
											]
										},
										"description": "**Route:** `shared.media.destroy`\n**Middleware:** `auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "19. Notifications",
					"item": [
						{
							"name": "List All Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.notifications.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Notifications retrieved successfully\",\n    \"data\": {\n        \"unread_count\": 0,\n        \"notifications\": {\n            \"super_admin_notifications\": [],\n            \"links\": {\n                \"first\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"last\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                \"prev\": null,\n                \"next\": null\n            },\n            \"meta\": {\n                \"current_page\": 1,\n                \"from\": null,\n                \"last_page\": 1,\n                \"links\": [\n                    {\n                        \"url\": null,\n                        \"label\": \"&laquo; Previous\",\n                        \"page\": null,\n                        \"active\": false\n                    },\n                    {\n                        \"url\": \"http://localhost:8000/api/v1/notifications?page=1\",\n                        \"label\": \"1\",\n                        \"page\": 1,\n                        \"active\": true\n                    },\n                    {\n                        \"url\": null,\n                        \"label\": \"Next &raquo;\",\n                        \"page\": null,\n                        \"active\": false\n                    }\n                ],\n                \"path\": \"http://localhost:8000/api/v1/notifications\",\n                \"per_page\": 15,\n                \"to\": null,\n                \"total\": 0\n            }\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Notification Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Error",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Notification not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Clear All Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/clear-all",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										"clear-all"
									]
								},
								"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/clear-all",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												"clear-all"
											]
										},
										"description": "**Route:** `shared.notifications.clear-all`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						},
						{
							"name": "Mark All Read Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"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": "**Route:** `shared.notifications.mark-all-read`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"All notifications marked as read\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Notification",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/notifications/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"notifications",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/notifications/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"notifications",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `shared.notifications.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Resource updated/deleted successfully\"\n}"
								}
							]
						}
					]
				},
				{
					"name": "20. Conversations & Messaging",
					"item": [
						{
							"name": "List All Conversations (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"subject\": \"Billing question\",\n                \"status\": \"Open\",\n                \"last_message\": \"Hi, I have a question.\",\n                \"created_at\": \"2026-08-20T10:52:49.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/client/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Invoice discrepancy\",\n                \"status\": \"Open\",\n                \"last_message\": \"Our latest invoice total does not match the contract terms.\",\n                \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/company/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Conversations (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 6,\n                \"subject\": \"Payout delay\",\n                \"status\": \"Open\",\n                \"last_message\": \"My last payout has not arrived yet.\",\n                \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n                \"closed_at\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"last\": \"http://localhost/api/v1/technician/conversations?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/technician/conversations?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/technician/conversations\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.conversations.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"subject\": \"Billing question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 3,\n                \"sender_type\": \"customer\",\n                \"body\": \"Hi, I have a question.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Customer's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "3",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"subject\": \"Invoice discrepancy\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 9,\n                \"sender_type\": \"customer\",\n                \"body\": \"Our latest invoice total does not match the contract terms.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another Company's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "9",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Conversation Details (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Payout delay\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"technician\",\n                \"body\": \"My last payout has not arrived yet.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - Another User's Conversation",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "8",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Client)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/client/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"conversations"
									]
								},
								"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"subject\": \"Refund not received\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T10:52:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 2,\n                \"sender_type\": \"customer\",\n                \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\",\n                \"sent_at\": \"2026-08-20T10:52:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Refund not received\",\n    \"body\": \"I cancelled my order 3 days ago and still have not received my refund.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/client/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"conversations"
											]
										},
										"description": "**Route:** `client.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Message (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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"conversations"
									]
								},
								"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Contract renewal question\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"We would like to renew our maintenance contract early — is that possible?\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 201 Created: 201 Created - BUG: sender_type hardcoded to 'customer' for a company sender",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Contract renewal question\",\n    \"body\": \"We would like to renew our maintenance contract early — is that possible?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"conversations"
											]
										},
										"description": "**Route:** `company.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 8,\n        \"subject\": \"Sender type check\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 8,\n                \"sender_type\": \"customer\",\n                \"body\": \"Verifying sender_type on the opening message.\",\n                \"sent_at\": \"2026-08-20T11:43:10.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Message (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"body\": \"Any update on this?\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations",
										":id",
										"messages"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{conversation_id}}",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Message sent successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"body\": \"Any update on this?\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations/:id/messages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations",
												":id",
												"messages"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `technician.conversations.messages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::sendMessage()` hardcodes `sender_type` to the literal string `\"customer\"` regardless of the actual sender — a technician's message is tagged `sender_type: \"customer\"` in the response. See `app/Services/Shared/ConversationService.php:98`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Conversation (Technician)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"conversation_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/technician/conversations",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"conversations"
									]
								},
								"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 7,\n        \"subject\": \"Assignment issue\",\n        \"status\": \"Open\",\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\",\n        \"closed_at\": null,\n        \"messages\": [\n            {\n                \"id\": 7,\n                \"sender_type\": \"customer\",\n                \"body\": \"I was assigned an order outside my coverage area.\",\n                \"sent_at\": \"2026-08-20T11:20:53.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Message field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "POST",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"subject\": \"Assignment issue\",\n    \"body\": \"I was assigned an order outside my coverage area.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/technician/conversations",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"conversations"
											]
										},
										"description": "**Route:** `technician.conversations.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `subject`\n- **Description:** Subject\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Inquiry about your service`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `body`\n- **Description:** Message\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example message body text.`\n- **Validation rules:** `required|string|max:2000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:2000` — must not exceed 2000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `ConversationService::store()` hardcodes the new message's `sender_type` to the literal string `\"customer\"` regardless of who's actually posting — a technician's own message comes back tagged `sender_type: \"customer\"` in the response. Shared code, same bug on Client/Company. See `app/Services/Shared/ConversationService.php:61`."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "21. Locations (Geo Hierarchy)",
					"item": [
						{
							"name": "List All Countries",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.countries.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 2,\n                \"name\": \"Egypt\",\n                \"slug\": null,\n                \"currency\": \"EGP\",\n                \"nationality\": \"Egyptian\",\n                \"phone_code\": \"20\",\n                \"phone_starting_number\": 1,\n                \"phone_length\": 10,\n                \"short_name\": \"EG\",\n                \"continent\": \"africa\",\n                \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Governorates",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.governorates.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 2,\n                \"name\": \"Cairo\",\n                \"slug\": \"cairo\",\n                \"country_id\": 7,\n                \"lat\": 30,\n                \"lng\": 31,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"country\": {\n                    \"id\": 7,\n                    \"name\": \"Egypt\",\n                    \"short_name\": \"EG\",\n                    \"phone_code\": \"20\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Regions",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.regions.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 2,\n                \"name\": \"Maadi\",\n                \"slug\": \"maadi\",\n                \"governorate_id\": 7,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.25,\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"governorate\": {\n                    \"id\": 7,\n                    \"name\": \"Cairo\"\n                },\n                \"shipping_zone\": {\n                    \"id\": 1,\n                    \"name\": \"Zone A\"\n                },\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Show Country Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\",\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"flag\": \"https://ui-avatars.com/api/?name=🏳&background=e5e7eb&color=6b7280&size=128\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Saudi Arabia\",\n            \"slug\": null,\n            \"currency\": \"SAR\",\n            \"nationality\": \"Saudi\"\n        },\n        \"ar\": {\n            \"name\": \"السعودية\",\n            \"slug\": null,\n            \"currency\": \"ريال\",\n            \"nationality\": \"سعودي\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Governorate Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\",\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"country\": {\n            \"id\": 7,\n            \"name\": \"Egypt\",\n            \"short_name\": \"EG\",\n            \"phone_code\": \"20\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"regions\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Alexandria\",\n            \"slug\": \"alexandria\"\n        },\n        \"ar\": {\n            \"name\": \"الإسكندرية\",\n            \"slug\": \"alex-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Region Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\",\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"governorate\": {\n            \"id\": 7,\n            \"name\": \"Cairo\"\n        },\n        \"shipping_zone\": {\n            \"id\": 1,\n            \"name\": \"Zone A\"\n        },\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Nasr City\",\n            \"slug\": \"nasr-city\"\n        },\n        \"ar\": {\n            \"name\": \"مدينة نصر\",\n            \"slug\": \"nasr-city-ar\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries"
									]
								},
								"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Duplicate Phone Code",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"phone_code\": \"966\",\n    \"phone_starting_number\": \"5\",\n    \"phone_length\": 9,\n    \"short_name\": \"SA\",\n    \"continent\": \"asia\",\n    \"is_active\": true,\n    \"en\": {\n        \"name\": \"Saudi Arabia\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    },\n    \"ar\": {\n        \"name\": \"السعودية\",\n        \"currency\": \"ريال\",\n        \"nationality\": \"سعودي\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries"
											]
										},
										"description": "**Route:** `admin.countries.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** required\n- **Example:** `20`\n- **Validation rules:** `required|string|max:5|unique:countries,phone_code,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|between:5,15`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:10`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** required\n- **Example:** `africa`\n- **Validation rules:** `required|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `required` — must be provided.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `EGP`\n- **Validation rules:** `required|string|max:50`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Phone Code has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"country_id\": 1,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates"
									]
								},
								"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a country.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Country",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"country_id\": 7,\n    \"lat\": 31.2,\n    \"lng\": 29.9,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Alexandria\",\n        \"slug\": \"alexandria\"\n    },\n    \"ar\": {\n        \"name\": \"الإسكندرية\",\n        \"slug\": \"alex-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates"
											]
										},
										"description": "**Route:** `admin.governorates.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:countries,id`\n- `required` — must be provided.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected country does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"governorate_id\": 1,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions"
									]
								},
								"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Governorate field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Governorate",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"governorate_id\": 7,\n    \"shipping_zone_id\": 1,\n    \"lat\": 30.06,\n    \"lng\": 31.33,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Nasr City\",\n        \"slug\": \"nasr-city\"\n    },\n    \"ar\": {\n        \"name\": \"مدينة نصر\",\n        \"slug\": \"nasr-city-ar\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions"
											]
										},
										"description": "**Route:** `admin.regions.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:governorates,id`\n- `required` — must be provided.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected governorate does not exist.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Country",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Saudi Arabia Updated\",\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "3",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `phone_code`\n- **Description:** Phone Code\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `20`\n- **Validation rules:** `sometimes|string|max:5|unique:countries,phone_code,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5` — must not exceed 5.\n- `unique:countries,phone_code,NULL,id` — must be unique (countries, phone_code, NULL, id).\n### `phone_starting_number`\n- **Description:** Phone Starting Number\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `phone_length`\n- **Description:** Phone Length\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|between:5,15`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `between:5,15` — must be between 5, 15.\n### `short_name`\n- **Description:** Short Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:10`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:10` — must not exceed 10.\n### `continent`\n- **Description:** Continent\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `africa`\n- **Validation rules:** `sometimes|in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"africa\",\"europe\",\"asia\",\"south_america\",\"north_america\",\"australia\"` — must be one of: \"africa\", \"europe\", \"asia\", \"south_america\", \"north_america\", \"australia\".\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `flag`\n- **Description:** Flag\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.currency`\n- **Description:** Currency (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `en.nationality`\n- **Description:** Nationality (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.currency`\n- **Description:** Currency (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `EGP`\n- **Validation rules:** `sometimes|string|max:50`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:50` — must not exceed 50.\n### `ar.nationality`\n- **Description:** Nationality (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Egyptian`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"phone_code\": \"966\",\n        \"phone_starting_number\": 5,\n        \"phone_length\": 9,\n        \"short_name\": \"SA\",\n        \"continent\": \"asia\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Saudi Arabia Updated\",\n        \"slug\": null,\n        \"currency\": \"SAR\",\n        \"nationality\": \"Saudi\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Governorate",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "3",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `country_id`\n- **Description:** Country\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:countries,id`\n- `sometimes` — validated only when the field is present.\n- `exists:countries,id` — must reference an existing record (countries, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"country_id\": 7,\n        \"lat\": 31.2,\n        \"lng\": 29.9,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Alexandria Updated\",\n        \"slug\": \"alexandria\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Region",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "3",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `governorate_id`\n- **Description:** Governorate\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:governorates,id`\n- `sometimes` — validated only when the field is present.\n- `exists:governorates,id` — must reference an existing record (governorates, id).\n### `shipping_zone_id`\n- **Description:** Shipping Zone\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|exists:shipping_zones,id`\n- `nullable` — may be null.\n- `exists:shipping_zones,id` — must reference an existing record (shipping_zones, id).\n### `lat`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-90,90`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `lng`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric|between:-180,180`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.slug`\n- **Description:** Slug (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.slug`\n- **Description:** Slug (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `example-slug`\n- **Validation rules:** `nullable|string|max:255`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"governorate_id\": 7,\n        \"shipping_zone_id\": 1,\n        \"lat\": 30.06,\n        \"lng\": 31.33,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"name\": \"Nasr City Updated\",\n        \"slug\": \"nasr-city\"\n    }\n}"
								}
							]
						},
						{
							"name": "Countries Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/countries?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"countries"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										},
										{
											"key": "filters[continent]",
											"value": "asia",
											"description": "Filter by continent",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/countries?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"countries"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												},
												{
													"key": "filters[continent]",
													"value": "asia",
													"description": "Filter by continent",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.countries`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n- `filters[continent]` — Filter by continent (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"countries\": [\n            {\n                \"id\": 31,\n                \"phone_code\": null,\n                \"phone_starting_number\": null,\n                \"phone_length\": null,\n                \"short_name\": null,\n                \"continent\": \"asia\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": null,\n                \"slug\": null,\n                \"currency\": null,\n                \"nationality\": null\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"last\": \"http://localhost/api/v1/client/countries?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/countries?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/countries\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Governorates Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/governorates?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"governorates"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[country_id]",
											"value": "1",
											"description": "Filter by country ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/governorates?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"governorates"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[country_id]",
													"value": "1",
													"description": "Filter by country ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.governorates`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[country_id]` — Filter by country ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"governorates\": [\n            {\n                \"id\": 1,\n                \"country_id\": 32,\n                \"lat\": 30.04,\n                \"lng\": 31.23,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"القاهرة\",\n                \"slug\": \"القاهرة\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"last\": \"http://localhost/api/v1/client/governorates?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/governorates?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/governorates\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Regions Geo",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/regions?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"regions"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status",
											"disabled": true
										},
										{
											"key": "filters[governorate_id]",
											"value": "1",
											"description": "Filter by governorate ID",
											"disabled": true
										},
										{
											"key": "filters[shipping_zone_id]",
											"value": "1",
											"description": "Filter by shipping zone ID",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/regions?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"regions"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status",
													"disabled": true
												},
												{
													"key": "filters[governorate_id]",
													"value": "1",
													"description": "Filter by governorate ID",
													"disabled": true
												},
												{
													"key": "filters[shipping_zone_id]",
													"value": "1",
													"description": "Filter by shipping zone ID",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.geo.regions`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status (optional)\n- `filters[governorate_id]` — Filter by governorate ID (optional)\n- `filters[shipping_zone_id]` — Filter by shipping zone ID (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"regions\": [\n            {\n                \"id\": 1,\n                \"governorate_id\": 2,\n                \"shipping_zone_id\": 1,\n                \"lat\": 30.05,\n                \"lng\": 31.22,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n                \"name\": \"مدينة نصر\",\n                \"slug\": \"مدينة-نصر\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"last\": \"http://localhost/api/v1/client/regions?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/client/regions?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/client/regions\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "Delete Country",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/:country",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										":country"
									],
									"variable": [
										{
											"key": "country",
											"value": "1",
											"description": "Country ID"
										}
									]
								},
								"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/:country",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												":country"
											],
											"variable": [
												{
													"key": "country",
													"value": "1",
													"description": "Country ID"
												}
											]
										},
										"description": "**Route:** `admin.countries.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Governorate",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										":governorate"
									],
									"variable": [
										{
											"key": "governorate",
											"value": "1",
											"description": "Governorate ID"
										}
									]
								},
								"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/:governorate",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												":governorate"
											],
											"variable": [
												{
													"key": "governorate",
													"value": "1",
													"description": "Governorate ID"
												}
											]
										},
										"description": "**Route:** `admin.governorates.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Region",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/:region",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										":region"
									],
									"variable": [
										{
											"key": "region",
											"value": "1",
											"description": "Region ID"
										}
									]
								},
								"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/:region",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												":region"
											],
											"variable": [
												{
													"key": "region",
													"value": "1",
													"description": "Region ID"
												}
											]
										},
										"description": "**Route:** `admin.regions.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Countries)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/countries/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"countries",
										"bulk"
									]
								},
								"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/countries/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"countries",
												"bulk"
											]
										},
										"description": "**Route:** `admin.countries.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Governorates)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"governorates",
										"bulk"
									]
								},
								"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/governorates/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"governorates",
												"bulk"
											]
										},
										"description": "**Route:** `admin.governorates.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Regions)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/regions/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"regions",
										"bulk"
									]
								},
								"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/regions/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"regions",
												"bulk"
											]
										},
										"description": "**Route:** `admin.regions.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "22. Branches",
					"item": [
						{
							"name": "List All Branches (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved successfully.\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"company_id\": 2,\n                \"company_name\": \"Keaton Schuppe\",\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"0221234567\",\n                \"address_text\": \"12 Tahrir Street, Cairo\",\n                \"latitude\": \"30.044420\",\n                \"longitude\": \"31.235712\",\n                \"working_hours\": [\n                    {\n                        \"to\": \"17:00\",\n                        \"day\": \"sunday\",\n                        \"from\": \"09:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 - Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Branches (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists own branches",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branches retrieved\",\n    \"data\": {\n        \"data\": [\n            {\n                \"id\": 1,\n                \"name\": \"Downtown Branch\",\n                \"phone\": \"1122233344\",\n                \"address_text\": \"123 Main St, Downtown\",\n                \"latitude\": 24.7136,\n                \"longitude\": 46.6753,\n                \"allowed_slots\": [\n                    \"morning\",\n                    \"afternoon\"\n                ],\n                \"working_hours\": [\n                    {\n                        \"day\": \"sunday\",\n                        \"day_label\": \"Sunday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    },\n                    {\n                        \"day\": \"monday\",\n                        \"day_label\": \"Monday\",\n                        \"from\": \"09:00\",\n                        \"to\": \"17:00\"\n                    }\n                ],\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 11:20:50\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"last\": \"http://localhost/api/v1/company/branches?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/company/branches?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/company/branches\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.branches.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Branch Details (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - own branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch retrieved\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - branch belongs to a different company",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.show`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"company_id\": 10,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches"
									]
								},
								"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"0221234567\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"company_id\": 2,\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"0221234567\",\n    \"address_text\": \"12 Tahrir Street, Cairo\",\n    \"latitude\": 30.04442,\n    \"longitude\": 31.235712,\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ],\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"is_active\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches"
											]
										},
										"description": "**Route:** `admin.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|integer|exists:company_profiles,user_id`\n- `required` — must be provided.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Company field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Branch (Company)",
							"event": [
								{
									"listen": "test",
									"script": {
										"type": "text/javascript",
										"exec": [
											"var response = pm.response.json();",
											"if (response.data && response.data.id !== undefined && response.data.id !== null) {",
											"    pm.collectionVariables.set(\"branch_id\", response.data.id);",
											"}"
										]
									}
								}
							],
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches"
									]
								},
								"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created - valid branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch created\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch\",\n        \"phone\": \"1122233344\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing required fields",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch\",\n    \"phone\": \"1122233344\",\n    \"address_text\": \"123 Main St, Downtown\",\n    \"latitude\": 24.7136,\n    \"longitude\": 46.6753,\n    \"allowed_slots\": [\n        \"morning\",\n        \"afternoon\"\n    ],\n    \"working_hours\": [\n        {\n            \"day\": \"sunday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        },\n        {\n            \"day\": \"monday\",\n            \"from\": \"09:00\",\n            \"to\": \"17:00\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches"
											]
										},
										"description": "**Route:** `company.branches.store`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:150`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** required\n- **Example:** `1234567890`\n- **Validation rules:** `required|string|max:20`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** required\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-90,90`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric|between:-180,180`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** required\n- **Example:** `sunday`\n- **Validation rules:** `required|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `required` — must be provided.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** required\n- **Example:** `09:00`\n- **Validation rules:** `required|date_format:H:i`\n- `required` — must be provided.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please enter your phone number.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Admin)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"company_id\": 2,\n        \"company_name\": \"Keaton Schuppe\",\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"0221234599\",\n        \"address_text\": \"12 Tahrir Street, Cairo\",\n        \"latitude\": \"30.044420\",\n        \"longitude\": \"31.235712\",\n        \"working_hours\": [\n            {\n                \"to\": \"17:00\",\n                \"day\": \"sunday\",\n                \"from\": \"09:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"contacts\": [],\n        \"stats\": {\n            \"total_orders\": 0,\n            \"active_contracts\": 0\n        },\n        \"updated_at\": \"2026-08-20 12:09:42\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"0221234599\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `company_id`\n- **Description:** Company\n- **Type:** `file`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|integer|exists:company_profiles,user_id`\n- `sometimes` — validated only when the field is present.\n- `integer` — must be a whole number.\n- `exists:company_profiles,user_id` — must reference an existing record (company_profiles, user_id).\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `allowed_slots`\n- **Description:** Allowed Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Branch (Company)",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - valid update",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch updated\",\n    \"data\": {\n        \"id\": 1,\n        \"name\": \"Downtown Branch (Renamed)\",\n        \"phone\": \"1122233355\",\n        \"address_text\": \"123 Main St, Downtown\",\n        \"latitude\": 24.7136,\n        \"longitude\": 46.6753,\n        \"allowed_slots\": [\n            \"morning\",\n            \"afternoon\"\n        ],\n        \"working_hours\": [\n            {\n                \"day\": \"sunday\",\n                \"day_label\": \"Sunday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            },\n            {\n                \"day\": \"monday\",\n                \"day_label\": \"Monday\",\n                \"from\": \"09:00\",\n                \"to\": \"17:00\"\n            }\n        ],\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 11:20:50\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - updating another company's branch",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"name\": \"Downtown Branch (Renamed)\",\n    \"phone\": \"1122233355\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.update`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `name`\n- **Description:** Branch Name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:150`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:150` — must not exceed 150.\n### `phone`\n- **Description:** Branch Phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `sometimes|string|max:20`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:20` — must not exceed 20.\n### `address_text`\n- **Description:** Address\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `123 Main Street, Building A`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `latitude`\n- **Description:** Latitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-90,90`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-90,90` — must be between -90, 90.\n### `longitude`\n- **Description:** Longitude\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric|between:-180,180`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n- `between:-180,180` — must be between -180, 180.\n### `allowed_slots`\n- **Description:** Available Visit Slots\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[\"morning\"]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `allowed_slots.*`\n- **Description:** Allowed slots item\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `morning`\n- **Validation rules:** `string|in:morning,afternoon,evening`\n- `string` — must be text.\n- `in:morning,afternoon,evening` — must be one of: morning, afternoon, evening.\n### `working_hours`\n- **Description:** Working Hours\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"day\":\"sunday\",\"from\":\"09:00\",\"to\":\"09:00\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null.\n- `array` — must be an array.\n### `working_hours.*.day`\n- **Description:** Day\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `sunday`\n- **Validation rules:** `sometimes|distinct|in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"`\n- `sometimes` — validated only when the field is present.\n- `distinct` — custom validation rule.\n- `in:\"sunday\",\"monday\",\"tuesday\",\"wednesday\",\"thursday\",\"friday\",\"saturday\"` — must be one of: \"sunday\", \"monday\", \"tuesday\", \"wednesday\", \"thursday\", \"friday\", \"saturday\".\n### `working_hours.*.from`\n- **Description:** From\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n### `working_hours.*.to`\n- **Description:** To\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `09:00`\n- **Validation rules:** `sometimes|date_format:H:i`\n- `sometimes` — validated only when the field is present.\n- `date_format:H:i` — custom validation rule.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Contacts Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"contacts"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch contacts updated successfully.\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"branch_id\": 1,\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        },\n        {\n            \"id\": 2,\n            \"branch_id\": 1,\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false,\n            \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n            \"updated_at\": \"2026-08-20T12:09:42.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"contacts\": [\n        {\n            \"name\": \"John Manager\",\n            \"phone\": \"0100000000\",\n            \"email\": \"john@branch.test\",\n            \"is_primary\": true\n        },\n        {\n            \"name\": \"Jane Assistant\",\n            \"phone\": \"0100000001\",\n            \"email\": \"jane@branch.test\",\n            \"is_primary\": false\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/contacts",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"contacts"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.contacts`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nExample payload is included in the request body. No FormRequest validation rules were detected.\n### `contacts.0.name`\n- **Description:** Contacts 0 name\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Jane Manager`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.phone`\n- **Description:** Contacts 0 phone\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1234567890`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.email`\n- **Description:** Contacts 0 email\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `branch-contact@example.com`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n### `contacts.0.is_primary`\n- **Description:** Contacts 0 is primary\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `not specified`\n- `not specified` — no validation rule was declared.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The contacts field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Active Branch",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":id",
										"toggle-active"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deactivated successfully.\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": false\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:id/toggle-active",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":id",
												"toggle-active"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.toggle-active`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "1",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted successfully.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `admin.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Branch (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/branches/:branch",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"branches",
										":branch"
									],
									"variable": [
										{
											"key": "branch",
											"value": "{{branch_id}}",
											"description": "Branch ID"
										}
									]
								},
								"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - deletable branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Branch deleted\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - deleting another company's branch",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Error - branch has scheduled visits (BR-12)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/branches/:branch",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"branches",
												":branch"
											],
											"variable": [
												{
													"key": "branch",
													"value": "1",
													"description": "Branch ID"
												}
											]
										},
										"description": "**Route:** `company.branches.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Branch cannot be deleted — it has scheduled visits.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/branches/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"branches",
										"bulk"
									]
								},
								"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 - OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 - Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 - Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/branches/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"branches",
												"bulk"
											]
										},
										"description": "**Route:** `admin.branches.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "23. Categories & Services (Catalog)",
					"item": [
						{
							"name": "List All Categories (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 2,\n                \"name\": \"Plumbing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": null,\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"parent\": null,\n                \"has_children\": false,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/categories?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/categories?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/categories\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Services",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.services.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"categories\": [\n            {\n                \"id\": 8,\n                \"name\": \"Pipe Fixing\",\n                \"description\": null,\n                \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n                \"parent_id\": 7,\n                \"parent\": {\n                    \"id\": 7,\n                    \"name\": \"Plumbing\"\n                },\n                \"is_active\": true,\n                \"sort_order\": 1,\n                \"price\": \"50.00\",\n                \"contract_price\": \"45.00\",\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/services?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/services?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/services\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Categories (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - authenticated, lists top-level categories",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Categories retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 30,\n            \"name\": \"Plumbing\",\n            \"description\": \"Pipe and water repairs\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"visit_price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.categories.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Category Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"name\": \"Electrical\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": null,\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"parent\": null,\n        \"has_children\": false,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"children\": [],\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Electrical\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كهرباء\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Service Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"name\": \"Leak Detection\",\n        \"description\": null,\n        \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n        \"parent_id\": 7,\n        \"parent\": {\n            \"id\": 7,\n            \"name\": \"Plumbing\"\n        },\n        \"is_active\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"name\": \"Leak Detection\",\n            \"description\": null\n        },\n        \"ar\": {\n            \"name\": \"كشف التسريبات\",\n            \"description\": null\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories"
									]
								},
								"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 100,\n    \"contract_price\": 90,\n    \"en\": {\n        \"name\": \"Electrical\"\n    },\n    \"ar\": {\n        \"name\": \"كهرباء\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories"
											]
										},
										"description": "**Route:** `admin.categories.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Name (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services"
									]
								},
								"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection\",\n        \"description\": null\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Category field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Invalid Parent",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"parent_id\": 7,\n    \"is_active\": true,\n    \"sort_order\": 2,\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection\"\n    },\n    \"ar\": {\n        \"name\": \"\\u0643\\u0634\\u0641 \\u0627\\u0644\\u062a\\u0633\\u0631\\u064a\\u0628\\u0627\\u062a\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services"
											]
										},
										"description": "**Route:** `admin.services.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** required\n- **Example:** `1`\n- **Validation rules:** `required|exists:categories,id,parent_id,\"NULL\"`\n- `required` — must be provided.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** required\n- **Example:** `10`\n- **Validation rules:** `required|numeric`\n- `required` — must be provided.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Name`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The selected parent must be a top-level category.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Category",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n> **`price` / `contract_price` are not accepted here** — top-level categories don't carry a price, only the services under them do. Sending these fields is silently ignored (stripped before save); the response still returns them for schema stability but they'll always be `null`/`0` on a category row.\n\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"name\": \"Electrical Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "3",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Parent Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `prohibited`\n- `prohibited` — custom validation rule.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `with_visit`\n- **Description:** With Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n### `visit_price`\n- **Description:** Visit Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `visit_contract_price`\n- **Description:** Visit Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `nullable|numeric`\n- `nullable` — may be null.\n- `numeric` — must be numeric.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"parent_id\": null,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"100.00\",\n        \"contract_price\": \"90.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Electrical Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "Update Service",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"price\": 80,\n    \"contract_price\": 70,\n    \"is_visit\": false,\n    \"en\": {\n        \"name\": \"Leak Detection Updated\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "9",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `parent_id`\n- **Description:** Category\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|exists:categories,id,parent_id,\"NULL\"`\n- `sometimes` — validated only when the field is present.\n- `exists:categories,id,parent_id,\"NULL\"` — must reference an existing record (categories, id, parent_id, \"NULL\").\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `price`\n- **Description:** Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `contract_price`\n- **Description:** Contract Price\n- **Type:** `number`\n- **Required:** optional\n- **Example:** `10`\n- **Validation rules:** `sometimes|numeric`\n- `sometimes` — validated only when the field is present.\n- `numeric` — must be numeric.\n### `is_visit`\n- **Description:** Is Visit\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `false`\n- **Validation rules:** `nullable|boolean`\n- `nullable` — may be null.\n- `boolean` — must be true, false, 1, or 0.\n- Marks this service as a **visit-only service** (e.g. a base diagnostic/assessment visit fee). A service with `is_visit: true` must be the sole item in a customer's cart — it cannot be combined with other services in the same order.\n### `en.name`\n- **Description:** Name (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.name`\n- **Description:** Name (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Name`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 9,\n        \"parent_id\": 7,\n        \"parent_info\": null,\n        \"image_path\": null,\n        \"is_active\": true,\n        \"is_visible\": true,\n        \"sort_order\": 2,\n        \"price\": \"80.00\",\n        \"contract_price\": \"70.00\",\n        \"is_visit\": false,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"deleted_at\": null,\n        \"name\": \"Leak Detection Updated\",\n        \"description\": null\n    }\n}"
								}
							]
						},
						{
							"name": "List Service Categories",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories"
									]
								},
								"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "200 OK — live capture",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories"
											]
										},
										"description": "**Route:** `client.categories.categories`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"name\": \"\\u0627\\u0644\\u0633\\u0628\\u0627\\u0643\\u0629\",\n            \"description\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0645\\u0648\\u0627\\u0633\\u064a\\u0631 \\u0648\\u0627\\u0644\\u0635\\u0631\\u0641 \\u0648\\u062a\\u0631\\u0643\\u064a\\u0628\\u0627\\u062a \\u0627\\u0644\\u0645\\u064a\\u0627\\u0647\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 6,\n            \"name\": \"\\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0621\",\n            \"description\": \"\\u0627\\u0644\\u0623\\u0633\\u0644\\u0627\\u0643 \\u0648\\u0627\\u0644\\u0645\\u0642\\u0627\\u0628\\u0633 \\u0648\\u0627\\u0644\\u0625\\u0635\\u0644\\u0627\\u062d\\u0627\\u062a \\u0627\\u0644\\u0643\\u0647\\u0631\\u0628\\u0627\\u0626\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"created_at\": \"2026-08-20T18:37:20.000000Z\"\n        },\n        {\n            \"id\": 11,\n            \"name\": \"\\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641 \\u0648\\u0627\\u0644\\u062a\\u0628\\u0631\\u064a\\u062f\",\n            \"description\": \"\\u062a\\u0631\\u0643\\u064a\\u0628 \\u0648\\u0635\\u064a\\u0627\\u0646\\u0629 \\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u062a\\u0643\\u064a\\u064a\\u0641\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 3,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 16,\n            \"name\": \"\\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0625\\u0635\\u0644\\u0627\\u062d \\u0627\\u0644\\u0623\\u062c\\u0647\\u0632\\u0629 \\u0627\\u0644\\u0645\\u0646\\u0632\\u0644\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 4,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        },\n        {\n            \"id\": 20,\n            \"name\": \"\\u0627\\u0644\\u062f\\u0647\\u0627\\u0646\\u0627\\u062a \\u0648\\u0627\\u0644\\u0646\\u062c\\u0627\\u0631\\u0629\",\n            \"description\": \"\\u062e\\u062f\\u0645\\u0627\\u062a \\u0627\\u0644\\u062f\\u0647\\u0627\\u0646 \\u0648\\u0627\\u0644\\u0623\\u0639\\u0645\\u0627\\u0644 \\u0627\\u0644\\u062e\\u0634\\u0628\\u064a\\u0629\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 5,\n            \"created_at\": \"2026-08-20T18:37:21.000000Z\"\n        }\n    ]\n}\n"
								}
							]
						},
						{
							"name": "List Category Services (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list active services under a category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Services retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 27,\n            \"parent_id\": 26,\n            \"name\": \"Wiring Repair\",\n            \"description\": \"Fix wiring\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        },\n        {\n            \"id\": 28,\n            \"parent_id\": 26,\n            \"name\": \"Socket Installation\",\n            \"description\": \"Install sockets\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 2,\n            \"parent\": {\n                \"id\": 26,\n                \"name\": \"Electrical\"\n            },\n            \"created_at\": \"2026-08-20T10:51:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - nonexistent category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `client.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List Category Services (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/categories/:id/services",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"categories",
										":id",
										"services"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - lists services under category",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Category services retrieved successfully.\",\n    \"data\": [\n        {\n            \"id\": 31,\n            \"parent_id\": 30,\n            \"name\": \"Pipe Leak Repair\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": \"150.00\",\n            \"sort_order\": 1,\n            \"created_at\": \"2026-08-20T11:20:50.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - unknown category id",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/categories/:id/services",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"categories",
												":id",
												"services"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `company.categories.services`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Category",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/:category",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										":category"
									],
									"variable": [
										{
											"key": "category",
											"value": "2",
											"description": "Category ID"
										}
									]
								},
								"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/:category",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												":category"
											],
											"variable": [
												{
													"key": "category",
													"value": "1",
													"description": "Category ID"
												}
											]
										},
										"description": "**Route:** `admin.categories.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Service",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/:service",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										":service"
									],
									"variable": [
										{
											"key": "service",
											"value": "2",
											"description": "Service ID"
										}
									]
								},
								"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/:service",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												":service"
											],
											"variable": [
												{
													"key": "service",
													"value": "1",
													"description": "Service ID"
												}
											]
										},
										"description": "**Route:** `admin.services.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Categories)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/categories/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"categories",
										"bulk"
									]
								},
								"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/categories/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"categories",
												"bulk"
											]
										},
										"description": "**Route:** `admin.categories.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Services)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/services/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"services",
										"bulk"
									]
								},
								"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/services/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"services",
												"bulk"
											]
										},
										"description": "**Route:** `admin.services.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "24. General Settings & Feature Flags",
					"item": [
						{
							"name": "List All Feature flags",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"feature_flags\": [\n            {\n                \"id\": 1,\n                \"key\": \"new_checkout_flow\",\n                \"is_enabled\": false,\n                \"targeting_rules\": {\n                    \"countries\": [\n                        \"SA\",\n                        \"AE\"\n                    ]\n                },\n                \"description\": \"Rolls out the redesigned checkout flow.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            },\n            {\n                \"id\": 2,\n                \"key\": \"wallet_top_up\",\n                \"is_enabled\": true,\n                \"targeting_rules\": null,\n                \"description\": \"Enables wallet top-up via gateway.\",\n                \"created_at\": \"2026-08-20 12:10:31\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/feature-flags?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/feature-flags\",\n            \"per_page\": 15,\n            \"to\": 2,\n            \"total\": 2\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Settings",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - list settings",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"My App\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - list settings after update",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.settings.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings retrieved\",\n    \"data\": {\n        \"app\": [\n            {\n                \"id\": 1,\n                \"key\": \"app_name\",\n                \"type\": \"string\",\n                \"value\": \"Maintenance Platform\",\n                \"group\": \"app\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ],\n        \"contact\": [\n            {\n                \"id\": 2,\n                \"key\": \"support_email\",\n                \"type\": \"string\",\n                \"value\": \"support@maintenance-platform.example.com\",\n                \"group\": \"contact\",\n                \"metadata\": null,\n                \"created_at\": \"2026-08-20T12:09:45.000000Z\",\n                \"updated_at\": \"2026-08-20T12:09:45.000000Z\"\n            }\n        ]\n    }\n}"
								}
							]
						},
						{
							"name": "Create New Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags"
									]
								},
								"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"key\": \"sms_notifications\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"percentage\": 50\n        },\n        \"description\": \"Enables SMS notifications for order updates.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key field is required.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"key\": \"sms_notifications\",\n    \"is_enabled\": true,\n    \"targeting_rules\": [\n        {\n            \"type\": \"percentage\",\n            \"value\": 50,\n            \"seed\": \"sms_notifications\"\n        }\n    ],\n    \"description\": \"Enables SMS notifications for order updates.\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags"
											]
										},
										"description": "**Route:** `admin.feature-flags.create`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** required\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `required|string|max:100|unique:feature_flags,key,NULL,id`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Feature flag",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"key\": \"new_checkout_flow\",\n        \"is_enabled\": true,\n        \"targeting_rules\": {\n            \"countries\": [\n                \"SA\",\n                \"AE\"\n            ]\n        },\n        \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - duplicate key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"description\": \"Rolls out the redesigned checkout flow (v2).\",\n    \"is_enabled\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `key`\n- **Description:** Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `new_checkout_flow`\n- **Validation rules:** `sometimes|string|max:100|unique:feature_flags,key,NULL,id`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n- `unique:feature_flags,key,NULL,id` — must be unique (feature_flags, key, NULL, id).\n### `is_enabled`\n- **Description:** Is Enabled\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `targeting_rules`\n- **Description:** Targeting Rules\n- **Type:** `array` of rule objects\n- **Required:** optional\n- **Example:** `[{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}, {\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}]`\n- **Validation rules:** `nullable|array`\n- `nullable` — may be null (flag then always evaluates to `is_enabled` with no targeting).\n- `array` — must be an array of rule objects, each shaped by its `type` (see `FlagTargetingEvaluator`):\n  - `{\"type\": \"country\", \"values\": [\"EG\", \"SA\"]}` — passes if the resolved country (`X-Country` header, falling back to the user's `country_code`) is in `values`.\n  - `{\"type\": \"version\", \"min_version\": \"2.0.0\"}` — passes if the `X-App-Version` header is `>=` `min_version`.\n  - `{\"type\": \"segment\", \"values\": [\"beta_testers\"]}` — passes if the authenticated user's `segment` is in `values`.\n  - `{\"type\": \"percentage\", \"value\": 50, \"seed\": \"checkout_v2\"}` — deterministic hash-based rollout (same user always gets the same result for the same seed), not a per-request coin flip. Omitting `seed` defaults to `\"default\"`.\n  - An unrecognized/missing `type` passes automatically (fails open, not closed).\n  - **All rules must pass (AND logic)** — one failing rule disables the flag regardless of the others.\n### `description`\n- **Description:** Description\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Key has already been taken.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Setting",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									},
									{
										"key": "Authorization",
										"value": "Bearer {token}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/settings",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"settings"
									]
								},
								"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**⚠️ Known bug:** `SettingService::update()` calls `AppConfig::updateOrCreate(['key' => ...], ['value' => ...])`, which never sets `group` — a non-nullable column with no default. Updating an EXISTING key works fine (only `value` changes), but submitting a brand-new key throws a database error, returned as a 500. See `app/Services/Admin/SettingService.php:52-57` and `database/migrations/2026_07_26_090606_create_app_configs_table.php:24`."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - bulk update existing settings",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Settings updated successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - missing setting key",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Each setting must have a key.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error - settings not an array",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Settings must be provided as an array.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 500 Internal Server Error: 500 Internal Server Error - BUG: new key insert fails (group column has no default)",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											},
											{
												"key": "Authorization",
												"value": "Bearer {token}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"settings\": [\n        {\n            \"key\": \"app_name\",\n            \"value\": \"Maintenance Platform\"\n        },\n        {\n            \"key\": \"support_email\",\n            \"value\": \"support@maintenance-platform.example.com\"\n        }\n    ]\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/settings",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"settings"
											]
										},
										"description": "**Route:** `admin.settings.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `settings`\n- **Description:** Settings\n- **Type:** `array`\n- **Required:** optional\n- **Example:** `[{\"key\":\"value\",\"value\":\"value\"}]`\n- **Validation rules:** `sometimes|array`\n- `sometimes` — validated only when the field is present.\n- `array` — must be an array.\n### `settings.*.key`\n- **Description:** Setting Key\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `sometimes|string|max:100`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:100` — must not exceed 100.\n### `settings.*.value`\n- **Description:** Setting Value\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string`\n- `nullable` — may be null.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Internal Server Error",
									"code": 500,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"error\",\n    \"message\": \"SQLSTATE[HY000]: General error: 1364 Field 'group' doesn't have a default value (Connection: mysql, Host: 127.0.0.1, Port: 3306, Database: maintenance_testing_ad_a, SQL: insert into `app_configs` (`key`, `value`, `updated_at`, `created_at`) values (brand_new_setting_key, some value, 2026-08-20 12:09:45, 2026-08-20 12:09:45))\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Feature flag",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id"
											],
											"variable": [
												{
													"key": "id",
													"value": "1",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Toggle Feature flag Status",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "[]",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										":id",
										"toggle"
									],
									"variable": [
										{
											"key": "id",
											"value": "1",
											"description": "Id ID"
										}
									]
								},
								"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Feature flag toggled\",\n    \"data\": {\n        \"id\": 2,\n        \"key\": \"wallet_top_up\",\n        \"is_enabled\": false,\n        \"targeting_rules\": null,\n        \"description\": \"Enables wallet top-up via gateway.\",\n        \"created_at\": \"2026-08-20T12:10:31.000000Z\",\n        \"updated_at\": \"2026-08-20T12:10:31.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "[]",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/:id/toggle",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												":id",
												"toggle"
											],
											"variable": [
												{
													"key": "id",
													"value": "2",
													"description": "Id ID"
												}
											]
										},
										"description": "**Route:** `admin.feature-flags.toggle`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo fields. Send an empty JSON object `{}`.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"feature-flags",
										"bulk"
									]
								},
								"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found - some ids missing",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/feature-flags/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"feature-flags",
												"bulk"
											]
										},
										"description": "**Route:** `admin.feature-flags.bulk.delete`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "25. Search",
					"item": [
						{
							"name": "List All Search",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/search?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"search"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK - search services by name/description",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 25,\n            \"parent_id\": 24,\n            \"name\": \"Pipe Repair Plumbing\",\n            \"description\": \"Fixing leaking pipes\",\n            \"image\": \"https://ui-avatars.com/api/?name=C&background=fef3c7&color=d97706&size=200\",\n            \"price\": null,\n            \"sort_order\": 1,\n            \"parent\": {\n                \"id\": 24,\n                \"name\": \"Plumbing Category\"\n            },\n            \"created_at\": \"2026-08-20T10:51:46.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 200 OK: 200 OK - no matches found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Search results retrieved successfully\",\n    \"data\": []\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - no token",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/search?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"search"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.search.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						}
					]
				},
				{
					"name": "26. Health & Status",
					"item": [
						{
							"name": "List All Health",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/health?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"health"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/health?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"health"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `shared.health.index`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"healthy\",\n    \"checks\": {\n        \"database\": {\n            \"status\": \"up\",\n            \"latency_ms\": 0.38\n        },\n        \"cache\": {\n            \"status\": \"up\",\n            \"driver\": \"database\",\n            \"latency_ms\": 4.35\n        },\n        \"queue\": {\n            \"status\": \"up\",\n            \"driver\": \"database\"\n        },\n        \"storage\": {\n            \"status\": \"up\",\n            \"driver\": \"local\"\n        }\n    },\n    \"version\": \"1.0.0\",\n    \"timestamp\": \"2026-08-19T21:35:04.385732Z\"\n}"
								}
							]
						},
						{
							"name": "Bootstrap Config",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/config/bootstrap",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"config",
										"bootstrap"
									]
								},
								"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/config/bootstrap",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"config",
												"bootstrap"
											]
										},
										"description": "**Route:** `shared.config.bootstrap`\n**Middleware:** `api, set_locale, cors`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Bootstrap configuration retrieved\",\n    \"data\": {\n        \"app\": {\n            \"min_version\": \"1.0.0\",\n            \"force_update\": false,\n            \"maintenance\": {\n                \"enabled\": false,\n                \"message\": \"Service temporarily unavailable\",\n                \"platforms\": []\n            }\n        },\n        \"features\": {\n            \"enable_notifications\": false,\n            \"enable_wallet\": true,\n            \"enable_cod\": true,\n            \"enable_reviews\": false,\n            \"maintenance_mode\": false,\n            \"new_checkout_flow\": true\n        },\n        \"integrations\": [],\n        \"ui\": {\n            \"primary_color\": \"#1d4ed8\",\n            \"home_sections_order\": \"sliders,categories,featured,new_arrivals\"\n        },\n        \"limits\": {\n            \"min_order_amount\": \"50\",\n            \"max_cart_items\": \"20\",\n            \"free_shipping_threshold\": \"500\"\n        },\n        \"urls\": []\n    }\n}"
								}
							]
						}
					]
				},
				{
					"name": "27. Content & Reference (FAQs, Pages, Sliders)",
					"item": [
						{
							"name": "List All Faqs (Admin)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"f_a_q_s\": [\n            {\n                \"id\": 1,\n                \"type\": \"General\",\n                \"question\": \"What is this?\",\n                \"answer\": \"A maintenance platform.\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:42\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/faqs?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/faqs?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/faqs\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Pages",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.pages.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"static_pages\": [\n            {\n                \"id\": 1,\n                \"type\": \"About Us\",\n                \"title\": \"About Us\",\n                \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/pages?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/pages?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/pages\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Sliders",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `admin.sliders.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"sliders\": [\n            {\n                \"id\": 1,\n                \"title\": \"Sale\",\n                \"subtitle\": \"Big discounts\",\n                \"link\": \"https://example.com\",\n                \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n                \"sort_order\": 1,\n                \"is_active\": true,\n                \"created_at\": \"2026-08-20 12:09:43\"\n            }\n        ],\n        \"links\": {\n            \"first\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"last\": \"http://localhost/api/v1/admin/sliders?page=1\",\n            \"prev\": null,\n            \"next\": null\n        },\n        \"meta\": {\n            \"current_page\": 1,\n            \"from\": 1,\n            \"last_page\": 1,\n            \"links\": [\n                {\n                    \"url\": null,\n                    \"label\": \"&laquo; Previous\",\n                    \"page\": null,\n                    \"active\": false\n                },\n                {\n                    \"url\": \"http://localhost/api/v1/admin/sliders?page=1\",\n                    \"label\": \"1\",\n                    \"page\": 1,\n                    \"active\": true\n                },\n                {\n                    \"url\": null,\n                    \"label\": \"Next &raquo;\",\n                    \"page\": null,\n                    \"active\": false\n                }\n            ],\n            \"path\": \"http://localhost/api/v1/admin/sliders\",\n            \"per_page\": 15,\n            \"to\": 1,\n            \"total\": 1\n        }\n    }\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this is the route that actually answers `GET /client/faqs` today — it requires authentication even though FAQs are public content. A second, intentionally-public route (`client.content.faqs`) is registered earlier at the identical URI but is currently shadowed and unreachable (same-path route collision). Until that's fixed, calling `/client/faqs` without a bearer token returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 2,\n            \"type\": \"General\",\n            \"question\": \"كيف أنشئ حساب؟\",\n            \"answer\": \"انقر على التسجيل واملأ بياناتك.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I add a branch?\",\n            \"answer\": \"Use the Branches endpoint to add a new branch to your company account.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `company.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "List All Faqs (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"faqs"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										},
										{
											"key": "filters[is_active]",
											"value": "1",
											"description": "Filter by active status: 1 or 0",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch FAQ successfully\",\n    \"data\": [\n        {\n            \"id\": 3,\n            \"type\": \"General\",\n            \"question\": \"How do I get paid?\",\n            \"answer\": \"Payouts are processed weekly to your wallet.\",\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n        }\n    ]\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/faqs?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"faqs"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												},
												{
													"key": "filters[is_active]",
													"value": "1",
													"description": "Filter by active status: 1 or 0",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `technician.faqs.index`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n- `filters[is_active]` — Filter by active status: 1 or 0 (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Faq Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Orders And Payment\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:42\",\n        \"updated_at\": \"2026-08-20 12:09:42\",\n        \"en\": {\n            \"question\": \"How do I pay?\",\n            \"answer\": \"Via wallet or gateway.\"\n        },\n        \"ar\": {\n            \"question\": \"كيف ادفع؟\",\n            \"answer\": \"عبر المحفظة أو البوابة.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Page Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"Return Policy\",\n        \"title\": \"Terms\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"content\": \"Terms content.\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Terms\",\n            \"content\": \"Terms content.\"\n        },\n        \"ar\": {\n            \"title\": \"الشروط\",\n            \"content\": \"محتوى الشروط.\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Show Slider Details",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data retrieved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\",\n        \"link\": \"https://example.com/promo\",\n        \"image\": \"https://ui-avatars.com/api/?name=S&background=e0e7ff&color=4f46e5&size=400\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20 12:09:43\",\n        \"updated_at\": \"2026-08-20 12:09:43\",\n        \"en\": {\n            \"title\": \"Promo\",\n            \"subtitle\": \"Limited time\"\n        },\n        \"ar\": {\n            \"title\": \"عرض\",\n            \"subtitle\": \"وقت محدود\"\n        }\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.show`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs"
									]
								},
								"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"is_active\": true,\n    \"type\": 2,\n    \"en\": {\n        \"question\": \"How do I pay?\",\n        \"answer\": \"Via wallet or gateway.\"\n    },\n    \"ar\": {\n        \"question\": \"كيف ادفع؟\",\n        \"answer\": \"عبر المحفظة أو البوابة.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs"
											]
										},
										"description": "**Route:** `admin.faqs.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `What is this?`\n- **Validation rules:** `required|string|max:500`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `This is the answer.`\n- **Validation rules:** `required|string|max:5000`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Question (en) field is required.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages"
									]
								},
								"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"type\": \"return_policy\",\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Terms\",\n        \"content\": \"Terms content.\"\n    },\n    \"ar\": {\n        \"title\": \"الشروط\",\n        \"content\": \"محتوى الشروط.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages"
											]
										},
										"description": "**Route:** `admin.pages.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** required\n- **Example:** `about_us`\n- **Validation rules:** `required|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `required` — must be provided.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum). The `StaticPage` model casts `type` to this enum on read, so a value outside it would throw an error when the page is loaded — this is enforced, not just labeling.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example content text`\n- **Validation rules:** `required|string`\n- `required` — must be provided.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select a type.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Create New Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders"
									]
								},
								"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 201 Created: 201 Created",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    }\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Validation Error",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"link\": \"https://example.com/promo\",\n    \"sort_order\": 2,\n    \"is_active\": true,\n    \"en\": {\n        \"title\": \"Promo\",\n        \"subtitle\": \"Limited time\"\n    },\n    \"ar\": {\n        \"title\": \"عرض\",\n        \"subtitle\": \"وقت محدود\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders"
											]
										},
										"description": "**Route:** `admin.sliders.store`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** required\n- **Example:** `Example Title`\n- **Validation rules:** `required|string|max:255`\n- `required` — must be provided.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"The Link must be a valid URL.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Update Faq",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "2",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `sometimes|in:\"1\",\"2\",\"3\"`\n- `sometimes` — validated only when the field is present.\n- `in:\"1\",\"2\",\"3\"` — must be one of: \"1\", \"2\", \"3\".\n### `en.question`\n- **Description:** Question (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `en.answer`\n- **Description:** Answer (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n### `ar.question`\n- **Description:** Question (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `What is this?`\n- **Validation rules:** `sometimes|string|max:500`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.answer`\n- **Description:** Answer (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `This is the answer.`\n- **Validation rules:** `sometimes|string|max:5000`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:5000` — must not exceed 5000.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": 2,\n        \"created_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:42.000000Z\",\n        \"question\": \"Updated question?\",\n        \"answer\": \"Updated answer.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Page",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "2",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `type`\n- **Description:** Type\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `about_us`\n- **Validation rules:** `sometimes|in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy`\n- `sometimes` — validated only when the field is present.\n- `in:about_us,privacy_policy,warranty_policy,return_policy,shipping_policy` — must be one of: about_us, privacy_policy, warranty_policy, return_policy, shipping_policy (`StaticPageType` enum) — see Create New Page.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.content`\n- **Description:** Content (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.content`\n- **Description:** Content (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example content text`\n- **Validation rules:** `sometimes|string`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"is_active\": true,\n        \"type\": \"return_policy\",\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Terms Updated\",\n        \"content\": \"Updated content.\"\n    }\n}"
								}
							]
						},
						{
							"name": "Update Slider",
							"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"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"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"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n    \"en\": {\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "2",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.update`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nSend as `application/json`.\n\n**Field documentation:**\n### `link`\n- **Description:** Link\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `https://example.com`\n- **Validation rules:** `nullable|url|max:500`\n- `nullable` — may be null.\n- `url` — must be a valid URL.\n- `max:500` — must not exceed 500.\n### `sort_order`\n- **Description:** Sort Order\n- **Type:** `integer`\n- **Required:** optional\n- **Example:** `1`\n- **Validation rules:** `nullable|integer`\n- `nullable` — may be null.\n- `integer` — must be a whole number.\n### `is_active`\n- **Description:** Is Active\n- **Type:** `boolean`\n- **Required:** optional\n- **Example:** `true`\n- **Validation rules:** `sometimes|boolean`\n- `sometimes` — validated only when the field is present.\n- `boolean` — must be true, false, 1, or 0.\n### `image`\n- **Description:** Image\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `value`\n- **Validation rules:** `nullable|string|custom:MediaExists`\n- `nullable` — may be null.\n- `string` — must be text.\n- `custom:MediaExists` — custom validation rule.\n### `en.title`\n- **Description:** Title (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `en.subtitle`\n- **Description:** Subtitle (en)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n### `ar.title`\n- **Description:** Title (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `sometimes|string|max:255`\n- `sometimes` — validated only when the field is present.\n- `string` — must be text.\n- `max:255` — must not exceed 255.\n### `ar.subtitle`\n- **Description:** Subtitle (ar)\n- **Type:** `string`\n- **Required:** optional\n- **Example:** `Example Title`\n- **Validation rules:** `nullable|string|max:500`\n- `nullable` — may be null.\n- `string` — must be text.\n- `max:500` — must not exceed 500.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data saved successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"link\": \"https://example.com/promo\",\n        \"sort_order\": 2,\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"updated_at\": \"2026-08-20T12:09:43.000000Z\",\n        \"title\": \"Promo Updated\",\n        \"subtitle\": \"Still limited\"\n    }\n}"
								}
							]
						},
						{
							"name": "Page Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/pages/:type",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"pages",
										":type"
									],
									"variable": [
										{
											"key": "type",
											"value": "shipping_policy",
											"description": "Static page type/slug — see ContentController for the allowed values."
										}
									]
								},
								"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Page retrieved successfully\",\n    \"data\": {\n        \"id\": 1,\n        \"is_active\": true,\n        \"type\": \"shipping_policy\",\n        \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n        \"title\": \"سياسة الشحن\",\n        \"content\": \"التوصيل العادي يستغرق 3-5 أيام عمل.\"\n    }\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/pages/:type",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"pages",
												":type"
											],
											"variable": [
												{
													"key": "type",
													"value": "shipping_policy",
													"description": "Static page type/slug — see ContentController for the allowed values."
												}
											]
										},
										"description": "**Route:** `client.content.page`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Sliders Content",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/sliders?page=1",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"sliders"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number"
										},
										{
											"key": "per_page",
											"value": "15",
											"description": "Items per page (max: 100)",
											"disabled": true
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term (searches across searchable fields)",
											"disabled": true
										},
										{
											"key": "sort[created_at]",
											"value": "desc",
											"description": "Sort by field: asc or desc",
											"disabled": true
										},
										{
											"key": "paginate",
											"value": "false",
											"description": "Set to false to disable pagination",
											"disabled": true
										}
									]
								},
								"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/sliders?page=1",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"sliders"
											],
											"query": [
												{
													"key": "page",
													"value": "1",
													"description": "Page number"
												},
												{
													"key": "per_page",
													"value": "15",
													"description": "Items per page (max: 100)",
													"disabled": true
												},
												{
													"key": "search",
													"value": "",
													"description": "Search term (searches across searchable fields)",
													"disabled": true
												},
												{
													"key": "sort[created_at]",
													"value": "desc",
													"description": "Sort by field: asc or desc",
													"disabled": true
												},
												{
													"key": "paginate",
													"value": "false",
													"description": "Set to false to disable pagination",
													"disabled": true
												}
											]
										},
										"description": "**Route:** `client.content.sliders`\n**Middleware:** `api, set_locale, cors, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Query parameters:**\n- `page` — Page number (supported)\n- `per_page` — Items per page (max: 100) (optional)\n- `search` — Search term (searches across searchable fields) (optional)\n- `sort[created_at]` — Sort by field: asc or desc (optional)\n- `paginate` — Set to false to disable pagination (optional)\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Sliders retrieved successfully\",\n    \"data\": [\n        {\n            \"id\": 1,\n            \"link\": \"https://example.com/summer\",\n            \"sort_order\": 1,\n            \"is_active\": true,\n            \"created_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"updated_at\": \"2026-08-20T10:52:55.000000Z\",\n            \"title\": \"تخفيضات الصيف\",\n            \"subtitle\": \"خصم يصل الى 50%\"\n        }\n    ]\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** this route sits inside the `auth:api + active` protected group in routes/api/v1/client.php, requiring a bearer token even though About Us content is meant to be public (same pattern as `client.content.page`, which IS public). Likely a route-placement bug worth fixing — flagged for the routes owner."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 2,\n        \"type\": \"About Us\",\n        \"title\": \"من نحن\",\n        \"content\": \"نقدم خدمة عالية الجودة.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `client.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Client)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{client_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"client",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — this is inside the protected group and requires a bearer token even though Privacy Policy content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement note)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 3,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"سياسة الخصوصية\",\n        \"content\": \"خصوصيتك مهمة لنا.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T10:52:56.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{client_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/client/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"client",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `client.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active, geo.context`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect maintenance companies with skilled technicians and clients.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `company.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client and Technician sides — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Company)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{company_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"company",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your company data is handled according to our privacy policy.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:43:10.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{company_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/company/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"company",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `company.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "About Us Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"about_us"
									]
								},
								"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch About Us Successfully\",\n    \"data\": {\n        \"id\": 4,\n        \"type\": \"About Us\",\n        \"title\": \"About Us\",\n        \"content\": \"We connect skilled technicians with customers.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/about_us",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"about_us"
											]
										},
										"description": "**Route:** `technician.static_pages.about_us`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue found on the Client side — this route sits inside the protected `auth:api + active` group even though About Us content is meant to be public. Confirmed: an unauthenticated request currently returns 401."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Privacy Policies Static page (Technician)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{technician_token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"technician",
										"static_pages",
										"privacy_policies"
									]
								},
								"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK (auth required — see route-placement bug report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"fetch Privacy Policies Successfully\",\n    \"data\": {\n        \"id\": 5,\n        \"type\": \"Privacy Policy\",\n        \"title\": \"Privacy Policy\",\n        \"content\": \"Your privacy is important to us.\",\n        \"image\": \"https://ui-avatars.com/api/?name=P&background=e0e7ff&color=4f46e5&size=200\",\n        \"is_active\": true,\n        \"created_at\": \"2026-08-20T11:20:53.000000Z\"\n    }\n}"
								},
								{
									"name": "Example Response — 401 Unauthorized: 401 Unauthenticated - confirms route-placement bug (see report)",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{technician_token}}",
													"type": "string"
												}
											]
										},
										"method": "GET",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/technician/static_pages/privacy_policies",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"technician",
												"static_pages",
												"privacy_policies"
											]
										},
										"description": "**Route:** `technician.static_pages.privacy_policies`\n**Middleware:** `api, set_locale, cors, auth:api, active`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```\n\n**Note:** same route-placement issue as About Us — protected even though this content is meant to be public."
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Unauthenticated, you have to login first\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Faq",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										":faq"
									],
									"variable": [
										{
											"key": "faq",
											"value": "1",
											"description": "Faq ID"
										}
									]
								},
								"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/:faq",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												":faq"
											],
											"variable": [
												{
													"key": "faq",
													"value": "1",
													"description": "Faq ID"
												}
											]
										},
										"description": "**Route:** `admin.faqs.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Page",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/:page",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										":page"
									],
									"variable": [
										{
											"key": "page",
											"value": "1",
											"description": "Page ID"
										}
									]
								},
								"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/:page",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												":page"
											],
											"variable": [
												{
													"key": "page",
													"value": "1",
													"description": "Page ID"
												}
											]
										},
										"description": "**Route:** `admin.pages.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Slider",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										":slider"
									],
									"variable": [
										{
											"key": "slider",
											"value": "1",
											"description": "Slider ID"
										}
									]
								},
								"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Not Found",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/:slider",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												":slider"
											],
											"variable": [
												{
													"key": "slider",
													"value": "1",
													"description": "Slider ID"
												}
											]
										},
										"description": "**Route:** `admin.sliders.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (FAQs)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"faqs",
										"bulk"
									]
								},
								"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 404 Not Found: 404 Invalid ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/faqs/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"faqs",
												"bulk"
											]
										},
										"description": "**Route:** `admin.faqs.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Resource not found\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Static Pages)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/pages/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"pages",
										"bulk"
									]
								},
								"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/pages/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"pages",
												"bulk"
											]
										},
										"description": "**Route:** `admin.pages.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						},
						{
							"name": "Delete Bulk (Sliders)",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{admin_token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Accept",
										"value": "application/json"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Accept-Language",
										"value": "{{locale}}"
									}
								],
								"url": {
									"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
									"host": [
										"{{base_url}}"
									],
									"path": [
										"api",
										"v1",
										"admin",
										"sliders",
										"bulk"
									]
								},
								"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
							},
							"response": [
								{
									"name": "Example Response — 200 OK: 200 OK",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"success\",\n    \"message\": \"Data removed successfully\",\n    \"data\": null\n}"
								},
								{
									"name": "Example Response — 422 Unprocessable Entity: 422 Empty ids",
									"originalRequest": {
										"auth": {
											"type": "bearer",
											"bearer": [
												{
													"key": "token",
													"value": "{{admin_token}}",
													"type": "string"
												}
											]
										},
										"method": "DELETE",
										"header": [
											{
												"key": "Accept",
												"value": "application/json"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											},
											{
												"key": "Accept-Language",
												"value": "{{locale}}"
											}
										],
										"url": {
											"raw": "{{base_url}}/api/v1/admin/sliders/bulk",
											"host": [
												"{{base_url}}"
											],
											"path": [
												"api",
												"v1",
												"admin",
												"sliders",
												"bulk"
											]
										},
										"description": "**Route:** `admin.sliders.bulk.destroy`\n**Middleware:** `api, set_locale, cors, auth:api, active, rbac.auto`\n\n**Payload:**\nNo request body. Use the documented path and query parameters.\n\n**Response Format:**\n```json\n{ \"status\": \"success\", \"message\": \"...\", \"data\": {...} }\n```"
									},
									"status": "Unprocessable Entity",
									"code": 422,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n    \"status\": \"fail\",\n    \"message\": \"Please select at least one item.\",\n    \"data\": null\n}"
								}
							]
						}
					]
				}
			]
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"requests": {},
				"exec": [
					""
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"packages": {},
				"requests": {},
				"exec": [
					""
				]
			}
		}
	],
	"variable": [
		{
			"key": "base_url",
			"value": "http://localhost:8000"
		},
		{
			"key": "admin_token",
			"value": ""
		},
		{
			"key": "client_token",
			"value": ""
		},
		{
			"key": "company_token",
			"value": ""
		},
		{
			"key": "technician_token",
			"value": ""
		},
		{
			"key": "token",
			"value": ""
		},
		{
			"key": "locale",
			"value": "en"
		},
		{
			"key": "order_id",
			"value": "460aab99-cc79-44ad-ac56-b71b385c37a4",
			"description": {
				"content": "An order's UUID (orders.uuid). Default = a real seeded pending order (customer: individual@info.com). Captured automatically after checkout/custom-request.",
				"type": "text/plain"
			}
		},
		{
			"key": "address_id",
			"value": "1",
			"description": {
				"content": "Default = individual@info.com's real seeded address. Captured automatically after creating a client address.",
				"type": "text/plain"
			}
		},
		{
			"key": "branch_id",
			"value": "1",
			"description": {
				"content": "Default = a real branch owned by gulf.maintenance (the seeded company login). Captured automatically after creating a company branch.",
				"type": "text/plain"
			}
		},
		{
			"key": "contract_id",
			"value": "1",
			"description": {
				"content": "Default = gulf.maintenance's real active contract. Captured automatically after creating a company contract.",
				"type": "text/plain"
			}
		},
		{
			"key": "technician_id",
			"value": "2",
			"description": {
				"content": "A technician's profile id (technicians.id), NOT users.id. Default = fahad.technician@info.com, the only technician with any order history. See SEED_DATA.md.",
				"type": "text/plain"
			}
		},
		{
			"key": "company_id",
			"value": "10",
			"description": {
				"content": "Default = gulf.maintenance@info.com (users.id 10), the seeded company login used throughout these docs.",
				"type": "text/plain"
			}
		},
		{
			"key": "user_id",
			"value": "3",
			"description": {
				"content": "Default = individual@info.com (users.id 3).",
				"type": "text/plain"
			}
		},
		{
			"key": "media_id",
			"value": "2",
			"description": {
				"content": "Default = gulf.maintenance's real commercial-register upload. Only 4 media rows exist total (see SEED_DATA.md) — captured automatically after a fresh media upload.",
				"type": "text/plain"
			}
		},
		{
			"key": "conversation_id",
			"value": "1",
			"description": {
				"content": "Only 1 conversation is seeded, and it belongs to the QA test client, not individual@info.com — see SEED_DATA.md. Captured automatically after opening a new one.",
				"type": "text/plain"
			}
		},
		{
			"key": "withdraw_request_id",
			"value": "",
			"description": {
				"content": "No default: ZERO withdraw requests exist in the seeded DB (see SEED_DATA.md gaps). Populated automatically once you submit one via Withdraw Wallet.",
				"type": "text/plain"
			}
		},
		{
			"key": "category_id",
			"value": "2",
			"description": {
				"content": "Default = \"Pipe Leak Repair\", a real bookable priced service (150.00). See SEED_DATA.md for the full catalog.",
				"type": "text/plain"
			}
		},
		{
			"key": "cart_item_id",
			"value": "",
			"description": {
				"content": "No default: carts are ephemeral / per-session, none pre-seeded. Populated automatically after Add Item.",
				"type": "text/plain"
			}
		}
	]
}
