{
	"info": {
		"_postman_id": "a1b2c3d4-e5f6-7890-abcd-autohub-ntf",
		"name": "AutoHub — Notifications APIs",
		"description": "كل مسارات الإشعارات في المشروع.\n\n**متغيرات المجموعة:**\n- `base_url` — عادة `http://127.0.0.1:8000`\n- `admin_token` — توكن Sanctum (أي مستخدم؛ مسار admin يقبل أي token)\n- `customer_token` — توكن عميل (`actor:customer`)\n- `guest_token` — توكن ضيف من `POST /api/guest/`\n- `notification_id` — id صف في جدول notifications (للأدمن PUT/PATCH/DELETE)\n- `recipient_id` — id صف في `notification_recipients` (لـ mark read — ليس id الإشعار نفسه)\n\n**ملاحظة:** `mark read` يستخدم **recipient id** من استجابة `GET .../notifications` (حقل `id` لكل عنصر في القائمة).",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"variable": [
		{ "key": "base_url", "value": "http://127.0.0.1:8000" },
		{ "key": "admin_token", "value": "" },
		{ "key": "customer_token", "value": "" },
		{ "key": "guest_token", "value": "" },
		{ "key": "notification_id", "value": "1" },
		{ "key": "recipient_id", "value": "1" },
		{ "key": "store_token", "value": "" },
		{ "key": "order_id", "value": "1" }
	],
	"item": [
		{
			"name": "Admin — إدارة الإشعارات (CRUD)",
			"item": [
				{
					"name": "List — GET كل الإشعارات",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"url": "{{base_url}}/api/admin/notifications"
					}
				},
				{
					"name": "Create — POST إشعار general",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"type\": \"general\",\n  \"title\": \"إشعار عام — تجربة\",\n  \"body\": \"نص الإشعار من Postman. يربط المستلمين يدوياً أو عبر منطق لاحق.\",\n  \"image_url\": null,\n  \"sent_at\": \"2026-03-28T12:00:00.000000Z\"\n}"
						},
						"url": "{{base_url}}/api/admin/notifications"
					}
				},
				{
					"name": "Create — POST إشعار store + store_id",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"type\": \"store\",\n  \"title\": \"عرض من المتجر\",\n  \"body\": \"تفاصيل العرض هنا\",\n  \"store_id\": 1,\n  \"image_url\": \"https://example.com/promo.jpg\",\n  \"sent_at\": \"2026-03-28T12:00:00.000000Z\"\n}"
						},
						"url": "{{base_url}}/api/admin/notifications"
					}
				},
				{
					"name": "Update — PUT إشعار",
					"request": {
						"method": "PUT",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"type\": \"general\",\n  \"title\": \"عنوان محدّث\",\n  \"body\": \"نص محدّث\",\n  \"image_url\": null,\n  \"sent_at\": \"2026-03-28T15:00:00.000000Z\"\n}"
						},
						"url": "{{base_url}}/api/admin/notifications/{{notification_id}}"
					}
				},
				{
					"name": "Update — PATCH إشعار (جزئي)",
					"request": {
						"method": "PATCH",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"title\": \"عنوان بعد PATCH\"\n}"
						},
						"url": "{{base_url}}/api/admin/notifications/{{notification_id}}"
					}
				},
				{
					"name": "Delete — DELETE إشعار",
					"request": {
						"method": "DELETE",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{admin_token}}" }
						],
						"url": "{{base_url}}/api/admin/notifications/{{notification_id}}"
					}
				}
			]
		},
		{
			"name": "Customer — تطبيق العميل",
			"item": [
				{
					"name": "Home — عداد غير المقروء (notifications_unread)",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{customer_token}}" }
						],
						"url": "{{base_url}}/api/user/home"
					}
				},
				{
					"name": "List — GET إشعاراتي",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{customer_token}}" }
						],
						"url": "{{base_url}}/api/user/notifications"
					}
				},
				{
					"name": "Mark read — POST تعليم مقروء",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{customer_token}}" }
						],
						"url": "{{base_url}}/api/user/notifications/{{recipient_id}}/read"
					}
				}
			]
		},
		{
			"name": "Guest — تطبيق الضيف",
			"item": [
				{
					"name": "Setup — POST إنشاء ضيف (للحصول على guest_token)",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"device_token\": \"postman-test-device-token-001\",\n  \"platform\": \"ios\"\n}"
						},
						"url": "{{base_url}}/api/guest/"
					}
				},
				{
					"name": "List — GET إشعارات الضيف",
					"request": {
						"method": "GET",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{guest_token}}" }
						],
						"url": "{{base_url}}/api/guest/notifications"
					}
				},
				{
					"name": "Mark read — POST تعليم مقروء (ضيف)",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{guest_token}}" }
						],
						"url": "{{base_url}}/api/guest/notifications/{{recipient_id}}/read"
					}
				}
			]
		},
		{
			"name": "Store — يولّد إشعار للعميل (قبول/رفض طلب)",
			"description": "ليس API إشعارات مباشر؛ عند `store_accept` أو `rejected` ينشئ النظام إشعاراً للعميل (`user_id` فقط). جرّبه بعد تسجيل دخول متجر ووجود طلب `pending`.",
			"item": [
				{
					"name": "Change order status — POST (يقبل الإشعار تلقائياً للعميل)",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" },
							{ "key": "Authorization", "value": "Bearer {{store_token}}" }
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"status\": \"store_accept\"\n}"
						},
						"url": "{{base_url}}/api/store/orders/{{order_id}}/status"
					}
				}
			]
		}
	]
}
