{
	"info": {
		"_postman_id": "c7e4a2b1-9f3d-4e8c-a1b2-SPARESHUB-driver-01",
		"name": "SPARESHUB — Driver APIs",
		"description": "كل مسارات السائق الحالية في `routes/api.php` (بادئة `/api/driver` + تسجيل الدخول والخروج).\n\n**متغيرات المجموعة:**\n- `base_url` — مثل `http://127.0.0.1:8000`\n- `driver_username` / `driver_password` — حساب `user_type: driver` (افتراضي من سيدر التسوية: `settlement_driver_login` / `password`)\n- `driver_token` — يُملأ تلقائياً بعد طلب **Auth — Login (driver)**\n- `order_id` — رقم طلب مُسند للسائق (مثلاً من `SettlementDemoOrdersSeeder`)\n\n**ملاحظات:**\n- الطلبات محمية بـ `auth:sanctum` و `actor:driver`.\n- استجابة الطلبات تتضمن `settlement` (تسوية الحسابات) عند جلب الطلب.\n- `POST .../respond` يعتمد على حالة الطلب (accept من `store_accept`، reject من حالات محددة).",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"variable": [
		{ "key": "base_url", "value": "http://127.0.0.1:8000" },
		{ "key": "driver_username", "value": "settlement_driver_login" },
		{ "key": "driver_password", "value": "password" },
		{ "key": "driver_token", "value": "" },
		{ "key": "order_id", "value": "1" }
	],
	"item": [
		{
			"name": "Auth",
			"item": [
				{
					"name": "Login — driver (يحفظ التوكن)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"const j = pm.response.json();",
									"if (j && j.success && j.data && j.data.token) {",
									"  pm.collectionVariables.set('driver_token', j.data.token);",
									"  pm.test('Token saved to driver_token', function () { pm.expect(j.data.token).to.be.a('string'); });",
									"} else {",
									"  pm.test('Login failed or no token', function () { pm.expect.fail(pm.response.text()); });",
									"}"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"username\": \"{{driver_username}}\",\n  \"password\": \"{{driver_password}}\",\n  \"user_type\": \"driver\"\n}"
						},
						"url": "{{base_url}}/api/auth/login",
						"description": "بعد نجاح الطلب يُخزَّن `data.token` في متغير المجموعة `driver_token`."
					}
				},
				{
					"name": "Logout — Sanctum",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/auth/logout",
						"description": "يلغي التوكن الحالي (يتطلب `auth:sanctum`)."
					}
				}
			]
		},
		{
			"name": "Driver — Profile",
			"item": [
				{
					"name": "GET profile",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/profile"
					}
				},
				{
					"name": "PUT profile (مثال — اختياري)",
					"request": {
						"method": "PUT",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"full_name\": \"Driver Demo Name\",\n  \"driver_name\": \"Driver Demo Name\",\n  \"latitude\": 24.72,\n  \"longitude\": 46.68\n}"
						},
						"url": "{{base_url}}/api/driver/profile",
						"description": "كل الحقول optional. إذا أرسلت latitude يجب longitude والعكس."
					}
				},
				{
					"name": "PUT profile/active",
					"request": {
						"method": "PUT",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"is_active\": true\n}"
						},
						"url": "{{base_url}}/api/driver/profile/active"
					}
				}
			]
		},
		{
			"name": "Driver — Ledger",
			"item": [
				{
					"name": "GET ledger (رصيد + قيود paginated)",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/ledger?per_page=30",
						"description": "يُنشأ القيد تلقائياً عندما يصبح الطلب `completed` (عمولة المنصة + تعويض حسم الشركة إن وُجد). الرصيد: موجب = الشركة تدفع للسائق."
					}
				}
			]
		},
		{
			"name": "Driver — Orders",
			"item": [
				{
					"name": "GET orders (كل الطلبات المسندة)",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/orders"
					}
				},
				{
					"name": "GET orders ?status=out_for_delivery",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/orders?status=out_for_delivery"
					}
				},
				{
					"name": "GET orders/{order_id}",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/orders/{{order_id}}",
						"description": "يُرجع الطلب مع `settlement` للتسوية."
					}
				},
				{
					"name": "POST orders/{order_id}/respond — accept",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"decision\": \"accept\"\n}"
						},
						"url": "{{base_url}}/api/driver/orders/{{order_id}}/respond",
						"description": "عادة يتطلب أن تكون حالة الطلب `store_accept` (ما عدا إن كان السائق قد قبل مسبقاً)."
					}
				},
				{
					"name": "POST orders/{order_id}/respond — reject",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"decision\": \"reject\"\n}"
						},
						"url": "{{base_url}}/api/driver/orders/{{order_id}}/respond",
						"description": "يُزال تعيين السائق عند الرفض ضمن الحالات المسموحة."
					}
				},
				{
					"name": "POST orders/{order_id}/complete — إكمال التوصيل",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{driver_token}}" }
						],
						"url": "{{base_url}}/api/driver/orders/{{order_id}}/complete",
						"description": "يضبط الطلب إلى `completed` إذا كانت الحالة `driver_accept` أو `packing` أو `out_for_delivery`. يُنشأ قيد الدفتر عند وجود `assigned_driver_id`."
					}
				}
			]
		}
	]
}
