{
	"info": {
		"_postman_id": "9f6842e4-22b1-45d6-bb98-56b2e3581604",
		"name": "Quick Connect",
		"description": "Updated Postman collection for Quick Connect API with standardized QR code fields (item_name, item_description, item_image, type_details) across all QR code types including CAR, PET, MEDICAL_QR, LUGGAGE, IDENTIFICATIONS, DOCUMENT, and MEMORY_TAG. Includes simplified scan module with only essential fields (latitude/longitude, notes, device_info), comprehensive admin endpoints for user management and analytics, and complete logging module with PDF report generation capabilities.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
		"_exporter_id": "39175316",
		"_collection_link": "https://exam-home.postman.co/workspace/Exam-Home-Workspace~16139f9d-f9ca-439f-88d8-2bb126eda41c/collection/39175316-9f6842e4-22b1-45d6-bb98-56b2e3581604?action=share&source=collection_link&creator=39175316"
	},
	"item": [
		{
			"name": "auth",
			"item": [
				{
					"name": "Register",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"user40@example.com\",\n  \"password\": \"JP123456789@\",\n  \"deviceToken\": \"string\",\n  \"deviceType\": \"ios\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/register",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"register"
							]
						}
					},
					"response": []
				},
				{
					"name": "Login",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract token from response and set as environment variable",
									"pm.test(\"Extract and set token from login\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.token) {",
									"        pm.environment.set(\"token\", jsonData.data.token);",
									"        pm.collectionVariables.set(\"token\", jsonData.data.token);",
									"        console.log(\"Token saved:\", jsonData.data.token);",
									"    } else if (jsonData.token) {",
									"        // Fallback if token is at root level",
									"        pm.environment.set(\"token\", jsonData.token);",
									"        pm.collectionVariables.set(\"token\", jsonData.token);",
									"        console.log(\"Token saved:\", jsonData.token);",
									"    } else {",
									"        console.log(\"No token found in response\");",
									"    }",
									"});",
									"",
									"// Also save user information if available",
									"pm.test(\"Save user info\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.user) {",
									"        pm.environment.set(\"user_id\", jsonData.data.user.id || jsonData.data.user._id);",
									"        pm.environment.set(\"user_email\", jsonData.data.user.email);",
									"        pm.collectionVariables.set(\"user_id\", jsonData.data.user.id || jsonData.data.user._id);",
									"        pm.collectionVariables.set(\"user_email\", jsonData.data.user.email);",
									"        console.log(\"User info saved\");",
									"    }",
									"});",
									"",
									"// Check for session cookie",
									"pm.test(\"Session cookie is set\", function () {",
									"    var cookies = pm.cookies.all();",
									"    var hasSessionCookie = cookies.some(function(cookie) {",
									"        return cookie.name && cookie.name.includes(\"connect.sid\");",
									"    });",
									"    if (hasSessionCookie) {",
									"        console.log(\"Session cookie detected - session-based authentication is active\");",
									"    } else {",
									"        console.log(\"Note: Session cookie not detected. Make sure cookies are enabled in Postman settings.\");",
									"    }",
									"});"
								],
								"type": "text/javascript",
								"packages": {},
								"requests": {}
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"kib@yopmail.com\",\n  \"password\": \"Test@1234\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/login",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"login"
							]
						},
						"description": "Authenticate user with email and password. Upon successful login:\n\n1. **Session is created**: User information is stored in express session and a session cookie is automatically set\n2. **JWT token is returned**: For API authentication via Bearer token\n3. **Both authentication methods work**: You can use either the JWT token (Bearer) or session cookie for subsequent requests\n\n**Note:** Make sure cookies are enabled in Postman settings (Settings → General → Cookies) to use session-based authentication."
					},
					"response": []
				},
				{
					"name": "Google Login",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{url}}/auth/google",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"google"
							]
						},
						"description": "Get the Google OAuth authorization URL. This endpoint returns a JSON response containing the URL that the frontend should open to initiate the login flow."
					},
					"response": []
				},
				{
					"name": "Google Callback",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{url}}/auth/google/callback",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"google",
								"callback"
							]
						},
						"description": "Google OAuth callback endpoint. This is where Google redirects users after authentication."
					},
					"response": []
				},
				{
					"name": "Logout",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test(\"Status code is 200\", function () {",
									"    pm.response.to.have.status(200);",
									"});",
									"",
									"pm.test(\"Logout successful\", function () {",
									"    var jsonData = pm.response.json();",
									"    pm.expect(jsonData.success).to.be.true;",
									"    pm.expect(jsonData.message).to.include(\"Logout\");",
									"});",
									"",
									"// Clear session-related variables",
									"pm.test(\"Clear session data\", function () {",
									"    pm.environment.unset(\"token\");",
									"    pm.collectionVariables.unset(\"token\");",
									"    console.log(\"Session and token cleared\");",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{url}}/auth/logout",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"logout"
							]
						},
						"description": "Logout the current user. This endpoint destroys the express session and invalidates the user's session. The user can be authenticated via JWT token (Bearer token) or session cookie. Both authentication methods are supported for backward compatibility.\n\n**Note:** After logout, the session cookie will be cleared automatically. Make sure to include the session cookie in subsequent requests if using session-based authentication."
					},
					"response": []
				},
				{
					"name": "Verify OTP",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract token from response and set as environment variable",
									"pm.test(\"Extract and set token from OTP verification\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.token) {",
									"        pm.environment.set(\"token\", jsonData.data.token);",
									"        pm.collectionVariables.set(\"token\", jsonData.data.token);",
									"        console.log(\"Token saved from OTP:\", jsonData.data.token);",
									"    } else if (jsonData.token) {",
									"        // Fallback if token is at root level",
									"        pm.environment.set(\"token\", jsonData.token);",
									"        pm.collectionVariables.set(\"token\", jsonData.token);",
									"        console.log(\"Token saved from OTP:\", jsonData.token);",
									"    } else {",
									"        console.log(\"No token found in OTP response\");",
									"    }",
									"});",
									"",
									"// Also save user information if available",
									"pm.test(\"Save user info from OTP\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.user) {",
									"        pm.environment.set(\"user_id\", jsonData.data.user.id || jsonData.data.user._id);",
									"        pm.environment.set(\"user_email\", jsonData.data.user.email);",
									"        pm.collectionVariables.set(\"user_id\", jsonData.data.user.id || jsonData.data.user._id);",
									"        pm.collectionVariables.set(\"user_email\", jsonData.data.user.email);",
									"        console.log(\"User info saved from OTP\");",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"user@example.com\",\n  \"otp\": \"538067\",\n  \"type\": \"signup\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/verify-otp",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"verify-otp"
							]
						}
					},
					"response": []
				},
				{
					"name": "Get Profile",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/auth/profile",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"profile"
							]
						}
					},
					"response": []
				},
				{
					"name": "Get Profile By Id",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/auth/profile/6908b73fafe0c4c297bcccb7",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"profile",
								"6908b73fafe0c4c297bcccb7"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Profile",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract user information from profile creation",
									"pm.test(\"Save user info from profile creation\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data) {",
									"        pm.environment.set(\"user_id\", jsonData.data.id || jsonData.data._id);",
									"        pm.environment.set(\"user_email\", jsonData.data.email);",
									"        pm.collectionVariables.set(\"user_id\", jsonData.data.id || jsonData.data._id);",
									"        pm.collectionVariables.set(\"user_email\", jsonData.data.email);",
									"        console.log(\"User profile info saved\");",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "first_name",
									"value": "John",
									"type": "text"
								},
								{
									"key": "last_name",
									"value": "Doe",
									"type": "text"
								},
								{
									"key": "phone_number",
									"value": "1234567890",
									"type": "text"
								},
								{
									"key": "country",
									"value": "US",
									"type": "text"
								},
								{
									"key": "State",
									"value": "NY",
									"type": "text"
								},
								{
									"key": "City",
									"value": "New York",
									"type": "text"
								},
								{
									"key": "role",
									"value": "USER",
									"type": "text"
								},
								{
									"key": "profile_picture",
									"type": "file",
									"src": []
								}
							]
						},
						"url": {
							"raw": "{{url}}/auth/create-profile",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"create-profile"
							]
						}
					},
					"response": []
				},
				{
					"name": "Edit-profile",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract user information from profile creation",
									"pm.test(\"Save user info from profile creation\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data) {",
									"        pm.environment.set(\"user_id\", jsonData.data.id || jsonData.data._id);",
									"        pm.environment.set(\"user_email\", jsonData.data.email);",
									"        pm.collectionVariables.set(\"user_id\", jsonData.data.id || jsonData.data._id);",
									"        pm.collectionVariables.set(\"user_email\", jsonData.data.email);",
									"        console.log(\"User profile info saved\");",
									"    }",
									"});"
								],
								"type": "text/javascript",
								"packages": {},
								"requests": {}
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "first_name",
									"value": "John",
									"type": "text"
								},
								{
									"key": "last_name",
									"value": "Doe",
									"type": "text"
								},
								{
									"key": "phone_number",
									"value": "1234567890",
									"type": "text"
								},
								{
									"key": "country",
									"value": "US",
									"type": "text"
								},
								{
									"key": "State",
									"value": "NY",
									"type": "text"
								},
								{
									"key": "City",
									"value": "New York",
									"type": "text"
								},
								{
									"key": "role",
									"value": "USER",
									"type": "text"
								},
								{
									"key": "profile_picture",
									"type": "file",
									"src": []
								}
							]
						},
						"url": {
							"raw": "{{url}}/auth/edit-profile",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"edit-profile"
							]
						}
					},
					"response": []
				},
				{
					"name": "change password",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PUT",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"currentPassword\":\"App@12345\",\r\n    \"newPassword\":\"JP@12345\",\r\n    \"confirmPassword\":\"JP@12345\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/change-password",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"change-password"
							]
						}
					},
					"response": []
				},
				{
					"name": "reset password",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n    \"newPassword\":\"JP@12345\",\r\n    \"confirmPassword\":\"JP@12345\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/reset-password",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"reset-password"
							]
						}
					},
					"response": []
				},
				{
					"name": "forgot password",
					"request": {
						"method": "POST",
						"header": [],
						"body": {
							"mode": "raw",
							"raw": "{\r\n      \"email\": \"user12@yopmail.com\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/auth/forgot-password",
							"host": [
								"{{url}}"
							],
							"path": [
								"auth",
								"forgot-password"
							]
						}
					},
					"response": []
				},
				{
					"name": "analytical",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": ""
						}
					},
					"response": []
				}
			]
		},
		{
			"name": "qrcodes",
			"item": [
				{
					"name": "Generic QR Codes",
					"item": [
						{
							"name": "Update QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Updated QR Code Title",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Updated Item Name",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated item description with more details",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"updated_field\": \"new_value\", \"last_modified\": \"2024-01-15\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated notes",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Delete QR Code",
							"request": {
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Get QR Code by ID",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Get QR Codes",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"disabled": true
										},
										{
											"key": "limit",
											"value": "10",
											"disabled": true
										},
										{
											"key": "type",
											"value": "CAR",
											"description": "Filter by QR code type (MEMORY_TAG, MEDICAL_QR, CAR, LUGGAGE, PET, IDENTIFICATIONS, DOCUMENT)",
											"disabled": true
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"description": "Filter by status (ACTIVE, INACTIVE)",
											"disabled": true
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"description": "Filter by access type (PUBLIC, PRIVATE, PROTECTED)",
											"disabled": true
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "My QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "CAR",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Honda Civic 2020",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Blue Honda Civic with license plate ABC-123. Contact owner if found.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"plate_number\": \"ABC-123\", \"contact_preference\": \"phone\", \"contact_value\": \"+1234567890\", \"make\": \"Honda\", \"model\": \"Civic\", \"year\": 2020, \"color\": \"Blue\", \"vin\": \"1HGBH41JXMN109186\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#000000",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Contact me if found",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "WiFi QR Codes",
					"item": [
						{
							"name": "Create WiFi QR Code",
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Home WiFi",
											"type": "text"
										},
										{
											"key": "type",
											"value": "WIFI",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"ssid\": \"MyNetwork\", \"password\": \"mysecretpassword\", \"encryption\": \"WPA\", \"hidden\": false}",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Car QR Codes",
					"item": [
						{
							"name": "Update Car QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Car QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Honda Civic 2020 - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Blue Honda Civic with license plate ABC-123. Contact owner if found.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"plate_number\": \"ABC-123\", \"contact_preference\": \"phone\", \"contact_value\": \"+1234567890\", \"make\": \"Honda\", \"model\": \"Civic\", \"year\": 2020, \"color\": \"Blue\", \"vin\": \"1HGBH41JXMN109186\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Contact me if found",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Car QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Car QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "CAR",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Honda Civic 2020",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Blue Honda Civic with license plate ABC-123. Contact owner if found.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"plate_number\": \"ABC-123\", \"contact_preference\": \"phone\", \"contact_value\": \"+1234567890\", \"make\": \"Honda\", \"model\": \"Civic\", \"year\": 2020, \"color\": \"Blue\", \"vin\": \"1HGBH41JXMN109186\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#000000",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Contact me if found",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Pet QR Codes",
					"item": [
						{
							"name": "Update Pet QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Pet QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Buddy - Golden Retriever - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Friendly golden retriever, loves treats and belly rubs. Please contact owner if found.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"pet_name\": \"Buddy\", \"species\": \"Dog\", \"breed\": \"Golden Retriever\", \"age\": 3, \"weight\": \"65 lbs\", \"microchip\": \"123456789012345\", \"vaccinations\": [\"Rabies\", \"DHPP\", \"Bordetella\"], \"owner_contact\": \"+1234567890\", \"vet_contact\": \"+0987654321\", \"special_needs\": \"None\", \"favorite_treats\": \"Peanut butter biscuits\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Friendly pet, please contact owner",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Pet QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Pet QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "PET",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Buddy - Golden Retriever",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Friendly golden retriever, loves treats and belly rubs. Please contact owner if found.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"pet_name\": \"Buddy\", \"species\": \"Dog\", \"breed\": \"Golden Retriever\", \"age\": 3, \"weight\": \"65 lbs\", \"microchip\": \"123456789012345\", \"vaccinations\": [\"Rabies\", \"DHPP\", \"Bordetella\"], \"owner_contact\": \"+1234567890\", \"vet_contact\": \"+0987654321\", \"special_needs\": \"None\", \"favorite_treats\": \"Peanut butter biscuits\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#4CAF50",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Friendly pet, please contact owner",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Medical QR Codes",
					"item": [
						{
							"name": "Update Medical QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Medical QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "John Doe Medical Info - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Emergency medical information and allergies for John Doe",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"blood_type\": \"O+\", \"allergies\": [\"Penicillin\", \"Shellfish\"], \"medical_conditions\": [\"Diabetes Type 2\"], \"emergency_contact\": \"+1234567890\", \"doctor\": \"Dr. Smith\", \"insurance\": \"Blue Cross\", \"patient_name\": \"John Doe\", \"date_of_birth\": \"1990-01-01\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Emergency medical information",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Medical QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Medical QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "MEDICAL_QR",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "John Doe Medical Info",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Emergency medical information and allergies for John Doe",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"blood_type\": \"O+\", \"allergies\": [\"Penicillin\", \"Shellfish\"], \"medical_conditions\": [\"Diabetes Type 2\"], \"emergency_contact\": \"+1234567890\", \"doctor\": \"Dr. Smith\", \"insurance\": \"Blue Cross\", \"patient_name\": \"John Doe\", \"date_of_birth\": \"1990-01-01\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#FF0000",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Emergency medical information",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Luggage QR Codes",
					"item": [
						{
							"name": "Update Luggage QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Luggage QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Black Samsonite Suitcase - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Large black suitcase with travel stickers. Contains personal belongings.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"luggage_type\": \"suitcase\", \"brand\": \"Samsonite\", \"color\": \"Black\", \"size\": \"Large\", \"weight\": \"25kg\", \"destination\": \"New York\", \"flight_number\": \"AA123\", \"travel_date\": \"2024-02-15\", \"owner_contact\": \"+1234567890\", \"reward_offered\": \"$50 if found\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Reward offered if found",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Luggage QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Luggage QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "LUGGAGE",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Black Samsonite Suitcase",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Large black suitcase with travel stickers. Contains personal belongings.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"luggage_type\": \"suitcase\", \"brand\": \"Samsonite\", \"color\": \"Black\", \"size\": \"Large\", \"weight\": \"25kg\", \"destination\": \"New York\", \"flight_number\": \"AA123\", \"travel_date\": \"2024-02-15\", \"owner_contact\": \"+1234567890\", \"reward_offered\": \"$50 if found\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PUBLIC",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#FF9800",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Reward offered if found",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Document QR Codes",
					"item": [
						{
							"name": "Update Document QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Document QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Confidential Contract - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Important legal document requiring secure access",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"document_type\": \"contract\", \"classification\": \"confidential\", \"expiry_date\": \"2025-12-31\", \"department\": \"Legal\", \"document_id\": \"DOC-2024-001\", \"version\": \"1.0\", \"author\": \"Legal Department\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Confidential document",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Document QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Document QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "DOCUMENT",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "Confidential Contract",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Important legal document requiring secure access",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"document_type\": \"contract\", \"classification\": \"confidential\", \"expiry_date\": \"2025-12-31\", \"department\": \"Legal\", \"document_id\": \"DOC-2024-001\", \"version\": \"1.0\", \"author\": \"Legal Department\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PROTECTED",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#9C27B0",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Confidential document",
											"type": "text"
										},
										{
											"key": "pin",
											"value": "1234",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Identification QR Codes",
					"item": [
						{
							"name": "Update Identification QR Code",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Update Identification QR Code",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "John Doe - Employee ID - Updated",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Updated: Employee identification badge for QuickConnect Inc.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"employee_id\": \"EMP-2024-001\", \"full_name\": \"John Doe\", \"department\": \"Engineering\", \"position\": \"Senior Developer\", \"hire_date\": \"2020-01-15\", \"badge_expiry\": \"2025-01-15\", \"access_level\": \"Level 3\", \"emergency_contact\": \"+1234567890\", \"company\": \"QuickConnect Inc.\"}",
											"type": "text"
										},
										{
											"key": "status",
											"value": "ACTIVE",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Updated Employee identification",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Create Identification QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract QR code ID from response and set as environment variable",
											"pm.test(\"Extract and set QR code ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
											"        console.log(\"QR Code ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "title",
											"value": "Create Identification QR Code",
											"type": "text"
										},
										{
											"key": "type",
											"value": "IDENTIFICATIONS",
											"type": "text"
										},
										{
											"key": "item_name",
											"value": "John Doe - Employee ID",
											"type": "text"
										},
										{
											"key": "item_description",
											"value": "Employee identification badge for QuickConnect Inc.",
											"type": "text"
										},
										{
											"key": "type_details",
											"value": "{\"employee_id\": \"EMP-2024-001\", \"full_name\": \"John Doe\", \"department\": \"Engineering\", \"position\": \"Senior Developer\", \"hire_date\": \"2020-01-15\", \"badge_expiry\": \"2025-01-15\", \"access_level\": \"Level 3\", \"emergency_contact\": \"+1234567890\", \"company\": \"QuickConnect Inc.\"}",
											"type": "text"
										},
										{
											"key": "location",
											"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
											"type": "text"
										},
										{
											"key": "location_enabled",
											"value": "true",
											"type": "text"
										},
										{
											"key": "access_type",
											"value": "PROTECTED",
											"type": "text"
										},
										{
											"key": "color",
											"value": "#2196F3",
											"type": "text"
										},
										{
											"key": "background_color",
											"value": "#FFFFFF",
											"type": "text"
										},
										{
											"key": "size",
											"value": "256",
											"type": "text"
										},
										{
											"key": "notes",
											"value": "Employee identification",
											"type": "text"
										},
										{
											"key": "pin",
											"value": "5678",
											"type": "text"
										},
										{
											"key": "item_image",
											"type": "file",
											"src": []
										},
										{
											"key": "images",
											"type": "file",
											"src": []
										}
									]
								},
								"url": {
									"raw": "{{url}}/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Public/Read QR Codes",
					"item": [
						{
							"name": "Get Public QR Code",
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{url}}/qrcodes/public/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"qrcodes",
										"public",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "Create Memory Tag QR Code",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract QR code ID from response and set as environment variable",
									"pm.test(\"Extract and set QR code ID\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
									"        pm.environment.set(\"qrcode_id\", jsonData.data._id);",
									"        pm.collectionVariables.set(\"qrcode_id\", jsonData.data._id);",
									"        console.log(\"QR Code ID set:\", jsonData.data._id);",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "title",
									"value": "Create Memory Tag QR Code",
									"type": "text"
								},
								{
									"key": "type",
									"value": "MEMORY_TAG",
									"type": "text"
								},
								{
									"key": "item_name",
									"value": "Summer Vacation 2024",
									"type": "text"
								},
								{
									"key": "item_description",
									"value": "Photos and memories from our amazing family vacation to New York City",
									"type": "text"
								},
								{
									"key": "type_details",
									"value": "{\"vacation_dates\": \"July 15-22, 2024\", \"participants\": [\"John\", \"Jane\", \"Kids\"], \"highlights\": [\"Statue of Liberty\", \"Central Park\", \"Broadway Show\"]}",
									"type": "text"
								},
								{
									"key": "location",
									"value": "{\"latitude\": 40.7128, \"longitude\": -74.0060}",
									"type": "text"
								},
								{
									"key": "location_enabled",
									"value": "true",
									"type": "text"
								},
								{
									"key": "access_type",
									"value": "PUBLIC",
									"type": "text"
								},
								{
									"key": "color",
									"value": "#FF6B6B",
									"type": "text"
								},
								{
									"key": "background_color",
									"value": "#FFFFFF",
									"type": "text"
								},
								{
									"key": "size",
									"value": "256",
									"type": "text"
								},
								{
									"key": "notes",
									"value": "Contains precious family moments",
									"type": "text"
								},
								{
									"key": "item_image",
									"type": "file",
									"src": []
								},
								{
									"key": "images",
									"type": "file",
									"src": []
								}
							]
						},
						"url": {
							"raw": "{{url}}/qrcodes",
							"host": [
								"{{url}}"
							],
							"path": [
								"qrcodes"
							]
						}
					},
					"response": []
				},
				{
					"name": "Update Memory Tag QR Code",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "title",
									"value": "Update Memory Tag QR Code",
									"type": "text"
								},
								{
									"key": "item_name",
									"value": "Summer Vacation 2024 - Updated",
									"type": "text"
								},
								{
									"key": "item_description",
									"value": "Updated: Photos and memories from our amazing family vacation to New York City",
									"type": "text"
								},
								{
									"key": "type_details",
									"value": "{\"vacation_dates\": \"July 15-22, 2024\", \"participants\": [\"John\", \"Jane\", \"Kids\"], \"highlights\": [\"Statue of Liberty\", \"Central Park\", \"Broadway Show\"]}",
									"type": "text"
								},
								{
									"key": "status",
									"value": "ACTIVE",
									"type": "text"
								},
								{
									"key": "notes",
									"value": "Updated Contains precious family moments",
									"type": "text"
								}
							]
						},
						"url": {
							"raw": "{{url}}/qrcodes/:id",
							"host": [
								"{{url}}"
							],
							"path": [
								"qrcodes",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{qrcode_id}}"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "verify-pin",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\r\n  \"pin\": \"54356\"\r\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/qrcodes/:id/verify-pin",
							"host": [
								"{{url}}"
							],
							"path": [
								"qrcodes",
								":id",
								"verify-pin"
							],
							"variable": [
								{
									"key": "id",
									"value": "69665222007859e2857cb842"
								}
							]
						}
					},
					"response": []
				}
			]
		},
		{
			"name": "memory-tags",
			"item": [
				{
					"name": "Create Memory Tag",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract memory tag ID from response and set as environment variable",
									"pm.test(\"Extract and set memory tag ID\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
									"        pm.environment.set(\"memory_tag_id\", jsonData.data._id);",
									"        pm.collectionVariables.set(\"memory_tag_id\", jsonData.data._id);",
									"        console.log(\"Memory Tag ID set:\", jsonData.data._id);",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"itemName\": \"Grandma's Watch\",\n  \"category\": \"Jewelry\",\n  \"description\": \"A vintage watch passed down from my grandmother\",\n  \"lastKnownLocation\": \"Living room drawer\",\n  \"ReminderDays\": \"30\",\n  \"shareWithCareGiver\": false,\n  \"notes\": true\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/memory-tags",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags"
							]
						},
						"description": "Create a new memory tag. Memory tags help users track and remember important items, locations, or memories."
					},
					"response": []
				},
				{
					"name": "Get All Memory Tags",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags?page=1&limit=10&search=",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Page number (default: 1)"
								},
								{
									"key": "limit",
									"value": "10",
									"description": "Items per page (default: 10, max: 100)"
								},
								{
									"key": "search",
									"value": "",
									"description": "Search term (optional)"
								}
							]
						},
						"description": "Get all memory tags for the authenticated user with pagination and optional search."
					},
					"response": []
				},
				{
					"name": "Get Memory Tag by ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/:id",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{memory_tag_id}}",
									"description": "Memory tag ID"
								}
							]
						},
						"description": "Get a specific memory tag by its ID."
					},
					"response": []
				},
				{
					"name": "Update Memory Tag",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"itemName\": \"Grandma's Watch - Updated\",\n  \"category\": \"Jewelry\",\n  \"description\": \"Updated: A vintage watch passed down from my grandmother\",\n  \"lastKnownLocation\": \"Bedroom drawer\",\n  \"ReminderDays\": \"45\",\n  \"shareWithCareGiver\": true,\n  \"notes\": true\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/memory-tags/:id",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{memory_tag_id}}",
									"description": "Memory tag ID"
								}
							]
						},
						"description": "Update an existing memory tag. All fields are optional - only include the fields you want to update."
					},
					"response": []
				},
				{
					"name": "Delete Memory Tag",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/:id",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								":id"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{memory_tag_id}}",
									"description": "Memory tag ID"
								}
							]
						},
						"description": "Delete a memory tag by its ID."
					},
					"response": []
				},
				{
					"name": "Get Memory Tags by Category",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/category/:category?page=1&limit=10",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								"category",
								":category"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Page number (default: 1)"
								},
								{
									"key": "limit",
									"value": "10",
									"description": "Items per page (default: 10, max: 100)"
								}
							],
							"variable": [
								{
									"key": "category",
									"value": "Jewelry",
									"description": "Category name"
								}
							]
						},
						"description": "Get all memory tags filtered by a specific category."
					},
					"response": []
				},
				{
					"name": "Get Shared Memory Tags",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/shared?page=1&limit=10",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								"shared"
							],
							"query": [
								{
									"key": "page",
									"value": "1",
									"description": "Page number (default: 1)"
								},
								{
									"key": "limit",
									"value": "10",
									"description": "Items per page (default: 10, max: 100)"
								}
							]
						},
						"description": "Get all memory tags that are shared with caregivers."
					},
					"response": []
				},
				{
					"name": "Toggle Share with Caregiver",
					"request": {
						"method": "PATCH",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/:id/toggle-share",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								":id",
								"toggle-share"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{memory_tag_id}}",
									"description": "Memory tag ID"
								}
							]
						},
						"description": "Toggle the share with caregiver setting for a memory tag. This will enable or disable sharing based on the current state."
					},
					"response": []
				},
				{
					"name": "Get Memory Tag Statistics",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/memory-tags/stats",
							"host": [
								"{{url}}"
							],
							"path": [
								"memory-tags",
								"stats"
							]
						},
						"description": "Get statistics about memory tags including total count, count by category, shared count, and count with notes."
					},
					"response": []
				}
			]
		},
		{
			"name": "scans",
			"item": [
				{
					"name": "Public Scans",
					"item": [
						{
							"name": "Public Scan QR Code",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract scan ID from response and set as environment variable",
											"pm.test(\"Extract and set scan ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"scan_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"scan_id\", jsonData.data._id);",
											"        console.log(\"Scan ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"is_anonymous\": true,\n  \"device_info\": \"Samsung Galaxy S24 - Android 14\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/scans/public",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										"public"
									]
								}
							},
							"response": [
								{
									"name": "Successful Public Scan",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"is_anonymous\": true,\n  \"device_info\": \"Samsung Galaxy S24 - Android 14\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/public",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"public"
											]
										}
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"QR code scanned successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060\n    },\n    \"is_anonymous\": true,\n    \"ip_address\": \"203.0.113.45\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								},
								{
									"name": "Protected QR Code with Password",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"password\": \"1234\",\n  \"is_anonymous\": true,\n  \"notes\": \"Scanning protected QR code with password\",\n  \"device_info\": \"iPhone 15 Pro - iOS 17.2\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/public",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"public"
											]
										}
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"QR code scanned successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c2\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060\n    },\n    \"notes\": \"Scanning protected QR code with password\",\n    \"is_anonymous\": true,\n    \"ip_address\": \"203.0.113.45\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								},
								{
									"name": "Invalid Password Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"password\": \"wrong_password\",\n  \"is_anonymous\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/public",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"public"
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Invalid password for protected QR code\",\n  \"data\": null,\n  \"statusCode\": 401\n}"
								}
							]
						}
					]
				},
				{
					"name": "Scan Creation",
					"item": [
						{
							"name": "Create Scan with Geocoding",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract scan ID from response and set as environment variable",
											"pm.test(\"Extract and set scan ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"scan_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"scan_id\", jsonData.data._id);",
											"        console.log(\"Scan ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "Authorization",
										"value": "Bearer {{token}}",
										"disabled": true
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"latitude\": \"40.7128\",\n  \"longitude\": \"-74.0060\",\n  \"notes\": \"Scan with geocoded location data\",\n  \"is_anonymous\": false,\n  \"device_info\": \"iPhone 15 Pro - iOS 17.2\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/scans/geocoded",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										"geocoded"
									],
									"query": [
										{
											"key": "type",
											"value": "guest",
											"description": "Set to 'guest' to generate a guest token for the scanner",
											"disabled": true
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Scan with Geocoding",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"latitude\": \"40.7128\",\n  \"userId\":\"692ec6ce7a4a60c20fb22f34\",\n  \"longitude\": \"-74.0060\",\n  \"notes\": \"Scan with geocoded location data\",\n  \"is_anonymous\": false,\n  \"device_info\": \"iPhone 15 Pro - iOS 17.2\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/geocoded",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"geocoded"
											]
										}
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan recorded successfully with geocoding\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060,\n      \"country\": \"United States\",\n      \"city\": \"New York\",\n      \"address\": \"New York, NY, USA\"\n    },\n    \"notes\": \"Scan with geocoded location data\",\n    \"is_anonymous\": false,\n    \"ip_address\": \"192.168.1.100\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								},
								{
									"name": "Guest Scan with Geocoding",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"latitude\": \"40.7128\",\n  \"longitude\": \"-74.0060\",\n  \"device_info\": \"Samsung Galaxy S24 - Android 14\",\n  \"is_anonymous\": true\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/geocoded?type=guest",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"geocoded"
											],
											"query": [
												{
													"key": "type",
													"value": "guest"
												}
											]
										}
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan recorded successfully with geocoding\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060,\n      \"country\": \"United States\",\n      \"city\": \"New York\",\n      \"address\": \"New York, NY, USA\"\n    },\n    \"is_anonymous\": true,\n    \"ip_address\": \"203.0.113.45\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								}
							]
						},
						{
							"name": "Create Scan",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Extract scan ID from response and set as environment variable",
											"pm.test(\"Extract and set scan ID\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data && jsonData.data._id) {",
											"        pm.environment.set(\"scan_id\", jsonData.data._id);",
											"        pm.collectionVariables.set(\"scan_id\", jsonData.data._id);",
											"        console.log(\"Scan ID set:\", jsonData.data._id);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"notes\": \"Successful scan from authenticated user\",\n  \"is_anonymous\": false,\n  \"device_info\": \"iPhone 15 Pro - iOS 17.2\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/scans",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans"
									]
								}
							},
							"response": [
								{
									"name": "Successful Scan Creation",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"scan_location\": {\n    \"latitude\": 40.7128,\n    \"longitude\": -74.0060\n  },\n  \"notes\": \"Successful scan from authenticated user\",\n  \"is_anonymous\": false,\n  \"device_info\": \"iPhone 15 Pro - iOS 17.2\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans"
											]
										}
									},
									"status": "Created",
									"code": 201,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan recorded successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060\n    },\n    \"notes\": \"Successful scan from authenticated user\",\n    \"is_anonymous\": false,\n    \"ip_address\": \"192.168.1.100\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								}
							]
						}
					]
				},
				{
					"name": "Scan Retrieval",
					"item": [
						{
							"name": "Get Scan by ID",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/scans/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{scan_id}}"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Scan Retrieval",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/scans/60f7b3b3b3b3b3b3b3b3b3c1",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"60f7b3b3b3b3b3b3b3b3b3c1"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan retrieved successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": {\n      \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n      \"title\": \"My Car QR Code\",\n      \"type\": \"CAR\",\n      \"access_type\": \"PUBLIC\"\n    },\n    \"coordinate_id\": null,\n    \"scanned_by\": {\n      \"_id\": \"60f7b3b3b3b3b3b3b3b3b3a1\",\n      \"first_name\": \"John\",\n      \"last_name\": \"Doe\",\n      \"email\": \"john.doe@example.com\"\n    },\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060\n    },\n    \"notes\": \"Successful scan from authenticated user\",\n    \"is_anonymous\": false,\n    \"ip_address\": \"192.168.1.100\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								}
							]
						},
						{
							"name": "Get Scans",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/scans?page=1&limit=10&search=notes",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number for pagination"
										},
										{
											"key": "limit",
											"value": "10",
											"description": "Number of scans per page"
										},
										{
											"key": "search",
											"value": "notes",
											"description": "Search term to filter scans by notes or IP address"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Scans List",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/scans?page=1&limit=10",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans"
											],
											"query": [
												{
													"key": "page",
													"value": "1"
												},
												{
													"key": "limit",
													"value": "10"
												}
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scans retrieved successfully\",\n  \"data\": {\n    \"scans\": [\n      {\n        \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n        \"qrcode_id\": {\n          \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n          \"title\": \"My Car QR Code\",\n          \"type\": \"CAR\"\n        },\n        \"scan_location\": {\n          \"latitude\": 40.7128,\n          \"longitude\": -74.0060\n        },\n        \"notes\": \"Successful scan from authenticated user\",\n        \"is_anonymous\": false,\n        \"ip_address\": \"192.168.1.100\",\n        \"created_at\": \"2024-01-15T10:30:00.000Z\",\n        \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n      }\n    ],\n    \"total\": 25,\n    \"page\": 1,\n    \"limit\": 10,\n    \"totalPages\": 3\n  }\n}"
								}
							]
						}
					]
				},
				{
					"name": "Scan Management",
					"item": [
						{
							"name": "Delete Scan",
							"request": {
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/scans/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{scan_id}}"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Scan Deletion",
									"originalRequest": {
										"method": "DELETE",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/scans/60f7b3b3b3b3b3b3b3b3b3c1",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"60f7b3b3b3b3b3b3b3b3b3c1"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan deleted successfully\"\n}"
								}
							]
						},
						{
							"name": "Update Scan",
							"request": {
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"notes\": \"Updated scan notes with additional information\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/scans/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{scan_id}}"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Scan Update",
									"originalRequest": {
										"method": "PUT",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											},
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"notes\": \"Updated scan notes with additional information\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/60f7b3b3b3b3b3b3b3b3b3c1",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"60f7b3b3b3b3b3b3b3b3b3c1"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan updated successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3c1\",\n    \"qrcode_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n    \"scan_location\": {\n      \"latitude\": 40.7128,\n      \"longitude\": -74.0060\n    },\n    \"notes\": \"Updated scan notes with additional information\",\n    \"is_anonymous\": false,\n    \"ip_address\": \"192.168.1.100\",\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T11:45:00.000Z\"\n  }\n}"
								}
							]
						}
					]
				},
				{
					"name": "Scan Analytics & Access",
					"item": [
						{
							"name": "Verify Protected QR Code PIN",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Test PIN verification and QR code data retrieval",
											"pm.test(\"PIN verification successful\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data) {",
											"        pm.expect(jsonData.data).to.have.property('_id');",
											"        pm.expect(jsonData.data).to.have.property('title');",
											"        pm.expect(jsonData.data).to.have.property('type');",
											"        pm.expect(jsonData.data).to.have.property('access_type');",
											"        pm.expect(jsonData.data.access_type).to.equal('PROTECTED');",
											"        console.log('QR Code Title:', jsonData.data.title);",
											"        console.log('QR Code Type:', jsonData.data.type);",
											"        console.log('Access Type:', jsonData.data.access_type);",
											"    }",
											"});",
											"",
											"pm.test(\"Response contains QR code data\", function () {",
											"    var jsonData = pm.response.json();",
											"    pm.expect(jsonData.message).to.include('PIN verified successfully');",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"pin\": \"1234\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/scans/verify-pin/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										"verify-pin",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "{{qrcode_id}}",
											"description": "QR Code ID that requires PIN verification"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful PIN Verification - Document QR Code",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"pin\": \"1234\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/verify-pin/60f7b3b3b3b3b3b3b3b3b3b7",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"verify-pin",
												"60f7b3b3b3b3b3b3b3b3b3b7"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"PIN verified successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b7\",\n    \"title\": \"Confidential Document\",\n    \"type\": \"DOCUMENT\",\n    \"item_name\": \"Confidential Contract\",\n    \"item_description\": \"Important legal document requiring secure access\",\n    \"type_details\": {\n      \"document_type\": \"contract\",\n      \"classification\": \"confidential\",\n      \"expiry_date\": \"2025-12-31\",\n      \"department\": \"Legal\",\n      \"document_id\": \"DOC-2024-001\",\n      \"version\": \"1.0\",\n      \"author\": \"Legal Department\"\n    },\n    \"access_type\": \"PROTECTED\",\n    \"status\": \"ACTIVE\",\n    \"color\": \"#9C27B0\",\n    \"background_color\": \"#FFFFFF\",\n    \"size\": 256,\n    \"privacy_controls\": {\n      \"access_level\": \"RESTRICTED\",\n      \"access_password\": null,\n      \"allow_anonymous_messaging\": false,\n      \"emergency_notify\": {\n        \"enabled\": false\n      }\n    },\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								},
								{
									"name": "Successful PIN Verification - Employee ID",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"pin\": \"5678\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/verify-pin/60f7b3b3b3b3b3b3b3b3b3b8",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"verify-pin",
												"60f7b3b3b3b3b3b3b3b3b3b8"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"PIN verified successfully\",\n  \"data\": {\n    \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b8\",\n    \"title\": \"Employee ID Badge\",\n    \"type\": \"IDENTIFICATIONS\",\n    \"item_name\": \"John Doe - Employee ID\",\n    \"item_description\": \"Employee identification badge for QuickConnect Inc.\",\n    \"type_details\": {\n      \"employee_id\": \"EMP-2024-001\",\n      \"full_name\": \"John Doe\",\n      \"department\": \"Engineering\",\n      \"position\": \"Senior Developer\",\n      \"hire_date\": \"2020-01-15\",\n      \"badge_expiry\": \"2025-01-15\",\n      \"access_level\": \"Level 3\",\n      \"emergency_contact\": \"+1234567890\",\n      \"company\": \"QuickConnect Inc.\"\n    },\n    \"access_type\": \"PROTECTED\",\n    \"status\": \"ACTIVE\",\n    \"color\": \"#2196F3\",\n    \"background_color\": \"#FFFFFF\",\n    \"size\": 256,\n    \"expired_at\": \"2025-01-15T23:59:59.000Z\",\n    \"privacy_controls\": {\n      \"access_level\": \"RESTRICTED\",\n      \"access_password\": null,\n      \"allow_anonymous_messaging\": false,\n      \"emergency_notify\": {\n        \"enabled\": true,\n        \"contact_email\": \"security@quickconnect.com\"\n      }\n    },\n    \"created_at\": \"2024-01-15T10:30:00.000Z\",\n    \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n  }\n}"
								},
								{
									"name": "Invalid PIN Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"pin\": \"9999\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/verify-pin/60f7b3b3b3b3b3b3b3b3b3b7",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"verify-pin",
												"60f7b3b3b3b3b3b3b3b3b3b7"
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Invalid PIN\",\n  \"data\": null,\n  \"statusCode\": 401\n}"
								},
								{
									"name": "QR Code Not Found Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"pin\": \"1234\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/verify-pin/60f7b3b3b3b3b3b3b3b3b3b0",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"verify-pin",
												"60f7b3b3b3b3b3b3b3b3b3b0"
											]
										}
									},
									"status": "Not Found",
									"code": 404,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"QR code not found\",\n  \"data\": null,\n  \"statusCode\": 404\n}"
								},
								{
									"name": "Invalid PIN Format Error",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Content-Type",
												"value": "application/json"
											}
										],
										"body": {
											"mode": "raw",
											"raw": "{\n  \"pin\": \"12\"\n}",
											"options": {
												"raw": {
													"language": "json"
												}
											}
										},
										"url": {
											"raw": "{{url}}/scans/verify-pin/60f7b3b3b3b3b3b3b3b3b3b7",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"verify-pin",
												"60f7b3b3b3b3b3b3b3b3b3b7"
											]
										}
									},
									"status": "Bad Request",
									"code": 400,
									"_postman_previewlanguage": "json",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/json"
										}
									],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"PIN must be at least 4 characters long\",\n  \"data\": {\n    \"details\": [\n      {\n        \"message\": \"PIN must be at least 4 characters long\",\n        \"path\": [\"pin\"],\n        \"type\": \"string.min\",\n        \"context\": {\n          \"limit\": 4,\n          \"value\": \"12\",\n          \"key\": \"pin\",\n          \"label\": \"pin\"\n        }\n      }\n    ]\n  },\n  \"statusCode\": 400\n}"
								}
							]
						},
						{
							"name": "Check QR Code Access Requirements",
							"event": [
								{
									"listen": "test",
									"script": {
										"exec": [
											"// Test QR code access information",
											"pm.test(\"QR code access info retrieved\", function () {",
											"    var jsonData = pm.response.json();",
											"    if (jsonData.success && jsonData.data) {",
											"        pm.expect(jsonData.data).to.have.property('requiresPassword');",
											"        pm.expect(jsonData.data).to.have.property('access_type');",
											"        pm.expect(jsonData.data).to.have.property('isActive');",
											"        pm.expect(jsonData.data).to.have.property('isExpired');",
											"        console.log('Requires Password:', jsonData.data.requiresPassword);",
											"        console.log('Access Type:', jsonData.data.access_type);",
											"        console.log('Is Active:', jsonData.data.isActive);",
											"        console.log('Is Expired:', jsonData.data.isExpired);",
											"    }",
											"});"
										],
										"type": "text/javascript"
									}
								}
							],
							"request": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{url}}/scans/check-access/:qrcodeId",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										"check-access",
										":qrcodeId"
									],
									"variable": [
										{
											"key": "qrcodeId",
											"value": "{{qrcode_id}}"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Get Scan Analytics",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/scans/analytics?qrcode_id={{qrcode_id}}&group_by=day&date_from=2024-01-01&date_to=2024-01-31",
									"host": [
										"{{url}}"
									],
									"path": [
										"scans",
										"analytics"
									],
									"query": [
										{
											"key": "qrcode_id",
											"value": "{{qrcode_id}}",
											"description": "Optional: Filter analytics by specific QR code ID"
										},
										{
											"key": "group_by",
											"value": "day",
											"description": "Group analytics by: day, week, month, or year"
										},
										{
											"key": "date_from",
											"value": "2024-01-01",
											"description": "Start date for analytics (ISO format)"
										},
										{
											"key": "date_to",
											"value": "2024-01-31",
											"description": "End date for analytics (ISO format)"
										}
									]
								}
							},
							"response": [
								{
									"name": "Successful Analytics Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/scans/analytics?group_by=day&date_from=2024-01-01&date_to=2024-01-31",
											"host": [
												"{{url}}"
											],
											"path": [
												"scans",
												"analytics"
											],
											"query": [
												{
													"key": "group_by",
													"value": "day"
												},
												{
													"key": "date_from",
													"value": "2024-01-01"
												},
												{
													"key": "date_to",
													"value": "2024-01-31"
												}
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Scan analytics retrieved successfully\",\n  \"data\": {\n    \"analytics\": [\n      {\n        \"_id\": {\n          \"year\": 2024,\n          \"month\": 1,\n          \"day\": 15\n        },\n        \"totalScans\": 12\n      },\n      {\n        \"_id\": {\n          \"year\": 2024,\n          \"month\": 1,\n          \"day\": 16\n        },\n        \"totalScans\": 18\n      },\n      {\n        \"_id\": {\n          \"year\": 2024,\n          \"month\": 1,\n          \"day\": 17\n        },\n        \"totalScans\": 15\n      }\n    ],\n    \"totalScans\": 45\n  }\n}"
								}
							]
						}
					]
				}
			],
			"description": "Scan management endpoints for tracking QR code scans. Simplified structure with only essential fields: latitude/longitude coordinates, notes, anonymity flag, IP address, and device info. Removed fields: address, city, country, scan_type, scan_status, scan_duration, and scan_data."
		},
		{
			"name": "notifications",
			"item": [
				{
					"name": "Get Notifications",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract first notification ID for testing other endpoints",
									"pm.test(\"Extract notification ID\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.notifications && jsonData.data.notifications.length > 0) {",
									"        const firstNotification = jsonData.data.notifications[0];",
									"        pm.environment.set(\"notification_id\", firstNotification._id);",
									"        pm.collectionVariables.set(\"notification_id\", firstNotification._id);",
									"        console.log(\"Notification ID saved:\", firstNotification._id);",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/notifications?page=1&limit=10&is_read=false&type=QRSCAN",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications"
							],
							"query": [
								{
									"key": "page",
									"value": "1"
								},
								{
									"key": "limit",
									"value": "10"
								},
								{
									"key": "is_read",
									"value": "false"
								},
								{
									"key": "type",
									"value": "QRSCAN"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "Mark Notification as Read",
					"request": {
						"method": "PATCH",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/notifications/:id/read",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								":id",
								"read"
							],
							"variable": [
								{
									"key": "id",
									"value": "{{notification_id}}"
								}
							]
						}
					},
					"response": []
				},
				{
					"name": "Mark Read Notification",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PATCH",
						"header": [],
						"url": {
							"raw": "{{url}}/notifications/mark-all-read",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								"mark-all-read"
							]
						}
					},
					"response": []
				},
				{
					"name": "Delete Notification",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "DELETE",
						"header": [],
						"url": {
							"raw": "{{url}}/notifications/690b39e59cc20c0661986cbf",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								"690b39e59cc20c0661986cbf"
							]
						}
					},
					"response": []
				},
				{
					"name": "Get Unread Count",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/notifications/unread-count",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								"unread-count"
							]
						}
					},
					"response": []
				},
				{
					"name": "Get Push Notification Status",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/notifications/push-status",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								"push-status"
							]
						}
					},
					"response": []
				},
				{
					"name": "Toggle Push Notifications",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PATCH",
						"header": [],
						"url": {
							"raw": "{{url}}/notifications/push-toggle",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications",
								"push-toggle"
							]
						}
					},
					"response": []
				},
				{
					"name": "Create Notification",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"title\": \"Test Notification\",\n  \"message\": \"This is a test notification message\",\n  \"type\": \"GENERAL\",\n  \"link\": \"/dashboard\",\n  \"qrcode_id\": \"{{qrcode_id}}\",\n  \"sendPush\": true,\n  \"data\": {\n    \"custom_field\": \"custom_value\"\n  }\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/notifications",
							"host": [
								"{{url}}"
							],
							"path": [
								"notifications"
							]
						}
					},
					"response": []
				}
			]
		},
		{
			"name": "admin",
			"item": [
				{
					"name": "User Management",
					"item": [
						{
							"name": "Get All Users",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/users?page=1&limit=10",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"users"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number for pagination"
										},
										{
											"key": "limit",
											"value": "10",
											"description": "Number of users per page"
										}
									]
								},
								"description": "Get paginated list of all users. Requires admin authentication."
							},
							"response": [
								{
									"name": "Successful Users List",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/users?page=1&limit=10",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1"
												},
												{
													"key": "limit",
													"value": "10"
												}
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"OK\",\n  \"data\": {\n    \"users\": [\n      {\n        \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b1\",\n        \"email\": \"user1@example.com\",\n        \"first_name\": \"John\",\n        \"last_name\": \"Doe\",\n        \"phone_number\": \"1234567890\",\n        \"country\": \"US\",\n        \"State\": \"NY\",\n        \"City\": \"New York\",\n        \"role\": \"USER\",\n        \"isProfileComplete\": true,\n        \"createdAt\": \"2024-01-15T10:30:00.000Z\",\n        \"updatedAt\": \"2024-01-15T10:30:00.000Z\"\n      },\n      {\n        \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b2\",\n        \"email\": \"user2@example.com\",\n        \"first_name\": \"Jane\",\n        \"last_name\": \"Smith\",\n        \"phone_number\": \"0987654321\",\n        \"country\": \"US\",\n        \"State\": \"CA\",\n        \"City\": \"Los Angeles\",\n        \"role\": \"USER\",\n        \"isProfileComplete\": true,\n        \"createdAt\": \"2024-01-14T09:20:00.000Z\",\n        \"updatedAt\": \"2024-01-14T09:20:00.000Z\"\n      }\n    ],\n    \"pagination\": {\n      \"currentPage\": 1,\n      \"totalPages\": 5,\n      \"totalUsers\": 47,\n      \"limit\": 10,\n      \"hasNextPage\": true,\n      \"hasPrevPage\": false\n    }\n  }\n}"
								},
								{
									"name": "Unauthorized Access",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/users?page=1&limit=10",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"users"
											],
											"query": [
												{
													"key": "page",
													"value": "1"
												},
												{
													"key": "limit",
													"value": "10"
												}
											]
										}
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Access denied. Admin privileges required\",\n  \"data\": null,\n  \"code\": 403\n}"
								}
							]
						},
						{
							"name": "Delete User",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/user/6903a0a524ee479092c4f3b0",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"user",
										"6903a0a524ee479092c4f3b0"
									]
								}
							},
							"response": []
						},
						{
							"name": "Update User Status",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "PUT",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/admin/user/69498ad6ab7fe3bf460237a5/status",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"user",
										"69498ad6ab7fe3bf460237a5",
										"status"
									]
								}
							},
							"response": []
						},
						{
							"name": "Get User QR Codes",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\r\n    \"status\":\"ACTIVE\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/admin/user/qrcodes",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"user",
										"qrcodes"
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "QR Code Management",
					"item": [
						{
							"name": "Admin",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "x-compress",
										"value": "true",
										"type": "text"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\r\n    \"status\":\"ACTIVE\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/admin/admin-analytics?period=year",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"admin-analytics"
									],
									"query": [
										{
											"key": "period",
											"value": "year"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Admin Analytics PDF Document",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/admin-analytics-document?period=7days",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"admin-analytics-document"
									],
									"query": [
										{
											"key": "period",
											"value": "7days",
											"description": "Time period: 7days, 30days, 90days, or year"
										}
									]
								},
								"description": "Generate a comprehensive PDF document containing admin analytics data. The PDF includes KPIs, summary statistics, daily analytics, QR code type distribution, recent activity, and top performing QR codes. The document features the Quick Connect logo and is formatted for professional presentation. Returns a downloadable PDF file."
							},
							"response": [
								{
									"name": "PDF Generated Successfully",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/admin-analytics-document?period=7days",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"admin-analytics-document"
											],
											"query": [
												{
													"key": "period",
													"value": "7days"
												}
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "raw",
									"header": [
										{
											"key": "Content-Type",
											"value": "application/pdf"
										},
										{
											"key": "Content-Disposition",
											"value": "attachment; filename=\"admin-analytics-7days-2024-01-15.pdf\""
										}
									],
									"cookie": [],
									"body": "PDF binary data (application/pdf)"
								},
								{
									"name": "Invalid Period",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/admin-analytics-document?period=invalid",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"admin-analytics-document"
											],
											"query": [
												{
													"key": "period",
													"value": "invalid"
												}
											]
										}
									},
									"status": "Bad Request",
									"code": 400,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Invalid period. Must be one of: 7days, 30days, 90days, year\",\n  \"data\": null,\n  \"code\": 400\n}"
								},
								{
									"name": "Unauthorized",
									"originalRequest": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{url}}/admin/admin-analytics-document?period=7days",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"admin-analytics-document"
											],
											"query": [
												{
													"key": "period",
													"value": "7days"
												}
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"User not authenticated\",\n  \"data\": null,\n  \"code\": 401\n}"
								}
							]
						},
						{
							"name": "User Behavior PDF Report",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/user-behavior-pdf?timePeriod=30d",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"user-behavior-pdf"
									],
									"query": [
										{
											"key": "timePeriod",
											"value": "30d",
											"description": "Time period: 1d, 7d, or 30d"
										},
										{
											"key": "startDate",
											"value": "",
											"description": "Optional: Start date (ISO format)",
											"disabled": true
										},
										{
											"key": "endDate",
											"value": "",
											"description": "Optional: End date (ISO format)",
											"disabled": true
										}
									]
								},
								"description": "Generate a PDF report based on user behavior analytics including login activity, user registrations, QR code creations, scan activity, top active users, and security events."
							},
							"response": []
						},
						{
							"name": "Get All QR Codes",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/qrcodes?page=1&limit=10",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"qrcodes"
									],
									"query": [
										{
											"key": "page",
											"value": "1",
											"description": "Page number for pagination"
										},
										{
											"key": "limit",
											"value": "10",
											"description": "Number of QR codes per page"
										},
										{
											"key": "search",
											"value": "",
											"description": "Search term to filter QR codes",
											"disabled": true
										},
										{
											"key": "sortBy",
											"value": "date",
											"description": "Sort by: date, name, or scans",
											"disabled": true
										},
										{
											"key": "sortOrder",
											"value": "desc",
											"description": "Sort order: asc or desc",
											"disabled": true
										}
									]
								},
								"description": "Get paginated list of all QR codes. Requires admin authentication."
							},
							"response": []
						},
						{
							"name": "Export QR Codes as CSV",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/qrcodes/export-csv",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"qrcodes",
										"export-csv"
									]
								},
								"description": "Export all QR codes (excluding deleted ones) as a CSV file. The CSV file will be streamed directly to the response with appropriate headers for download. Only admins can access this endpoint. The file will be named with the format: qrcodes-export-YYYY-MM-DD.csv"
							},
							"response": [
								{
									"name": "CSV Export Success",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/qrcodes/export-csv",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"qrcodes",
												"export-csv"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "csv",
									"header": [
										{
											"key": "Content-Type",
											"value": "text/csv"
										},
										{
											"key": "Content-Disposition",
											"value": "attachment; filename=qrcodes-export-2024-01-15.csv"
										}
									],
									"cookie": [],
									"body": "title,type,status,created_at,updated_at\nQR Code 1,MEMORY_TAG,ACTIVE,2024-01-15T10:30:00.000Z,2024-01-15T10:30:00.000Z\nQR Code 2,MEDICAL_QR,ACTIVE,2024-01-14T09:20:00.000Z,2024-01-14T09:20:00.000Z"
								},
								{
									"name": "Unauthorized",
									"originalRequest": {
										"method": "GET",
										"header": [],
										"url": {
											"raw": "{{url}}/admin/qrcodes/export-csv",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"qrcodes",
												"export-csv"
											]
										}
									},
									"status": "Unauthorized",
									"code": 401,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"User not authenticated\",\n  \"data\": null,\n  \"code\": 401\n}"
								}
							]
						},
						{
							"name": "Delete QR Code",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/qrcode/{{qrcodeId}}",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"qrcode",
										"{{qrcodeId}}"
									],
									"variable": [
										{
											"key": "qrcodeId",
											"value": "507f1f77bcf86cd799439011",
											"description": "QR code ID (MongoDB ObjectId)"
										}
									]
								},
								"description": "Soft delete a QR code by setting isDelete to true and status to INACTIVE. The QR code data is preserved but marked as deleted. Only admins can perform this action. Replace {{qrcodeId}} with the actual QR code ID."
							},
							"response": []
						},
						{
							"name": "Qcode Report",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/admin/qrcode-pdf-report",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"qrcode-pdf-report"
									]
								},
								"description": "Toggle the status of a QR code between ACTIVE and INACTIVE. Requires admin authentication."
							},
							"response": []
						}
					]
				},
				{
					"name": "Documents",
					"item": [
						{
							"name": "Upload Admin Document",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "document",
											"type": "file",
											"src": "/C:/Users/muhammad.farooq/Downloads/quick connect questions.docx"
										},
										{
											"key": "type",
											"value": "company-profile",
											"description": "[\n            'company-profile',\n            'terms-and-conditions',\n            'privacy-policy',\n            'financial-report',\n            'marketing-presentation'\n        ]",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/admin/documents",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"documents"
									]
								}
							},
							"response": []
						},
						{
							"name": "Get All Documents",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"body": {
									"mode": "formdata",
									"formdata": [
										{
											"key": "document",
											"type": "file",
											"src": "/C:/Users/muhammad.farooq/Downloads/quick connect questions.docx"
										},
										{
											"key": "type",
											"value": "company-profile",
											"description": "[\n            'company-profile',\n            'terms-and-conditions',\n            'privacy-policy',\n            'financial-report',\n            'marketing-presentation'\n        ]",
											"type": "text"
										}
									]
								},
								"url": {
									"raw": "{{url}}/admin/documents?page=1&limit=10",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"documents"
									],
									"query": [
										{
											"key": "page",
											"value": "1"
										},
										{
											"key": "limit",
											"value": "10"
										},
										{
											"key": "search",
											"value": "loggi",
											"disabled": true
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "Download Admin Document",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/documents/:id/download",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"documents",
										":id",
										"download"
									],
									"variable": [
										{
											"key": "id",
											"value": "",
											"description": "Admin document ID to download"
										}
									]
								},
								"description": "Download an admin document by ID. Requires admin authentication. The download count will be incremented."
							},
							"response": []
						},
						{
							"name": "Delete Admin Document",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/documents/:id",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"documents",
										":id"
									],
									"variable": [
										{
											"key": "id",
											"value": "",
											"description": "Admin document ID to delete"
										}
									]
								},
								"description": "Delete an admin document by ID. Requires admin authentication. This will also delete the associated media file from the filesystem."
							},
							"response": []
						},
						{
							"name": "Admin Analytics",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"email\": \"quickconnect-admin@yopmail.com\",\n  \"password\": \"Pa$$w0rd!\"\n}"
								},
								"url": {
									"raw": "{{url}}/admin/admin-analytics-document?period=year",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"admin-analytics-document"
									],
									"query": [
										{
											"key": "period",
											"value": "year"
										}
									]
								}
							},
							"response": []
						}
					]
				},
				{
					"name": "admin request analytics",
					"item": [
						{
							"name": "Get Analytics",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/get-analytics",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"get-analytics"
									]
								},
								"description": "Get comprehensive analytics including total users, QR codes, media count, and weekly analytics breakdown. Requires admin authentication."
							},
							"response": [
								{
									"name": "Successful Analytics Response",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/get-analytics",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"get-analytics"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"OK\",\n  \"data\": {\n    \"totalUsers\": 47,\n    \"totalQrCodes\": 123,\n    \"mediaCount\": 89,\n    \"weeklyAnalytics\": [\n      {\n        \"name\": \"Sun\",\n        \"scans\": 5,\n        \"users\": 2\n      },\n      {\n        \"name\": \"Mon\",\n        \"scans\": 12,\n        \"users\": 8\n      },\n      {\n        \"name\": \"Tue\",\n        \"scans\": 18,\n        \"users\": 12\n      },\n      {\n        \"name\": \"Wed\",\n        \"scans\": 15,\n        \"users\": 10\n      },\n      {\n        \"name\": \"Thu\",\n        \"scans\": 22,\n        \"users\": 15\n      },\n      {\n        \"name\": \"Fri\",\n        \"scans\": 28,\n        \"users\": 18\n      },\n      {\n        \"name\": \"Sat\",\n        \"scans\": 20,\n        \"users\": 14\n      }\n    ]\n  }\n}"
								}
							]
						},
						{
							"name": "Get Analytics (Alternative Endpoint)",
							"request": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/analytics",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"analytics"
									]
								},
								"description": "Alternative analytics endpoint (currently mapped to getAllUsers method). Requires admin authentication."
							},
							"response": []
						},
						{
							"name": "admin analytics",
							"protocolProfileBehavior": {
								"disableBodyPruning": true
							},
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "x-compress",
										"value": "true",
										"type": "text"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\r\n    \"status\":\"ACTIVE\"\r\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/admin/admin-analytics?period=year",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"admin-analytics"
									],
									"query": [
										{
											"key": "period",
											"value": "year"
										}
									]
								}
							},
							"response": []
						},
						{
							"name": "User Behavior PDF Report",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/user-behavior-pdf?timePeriod=30d",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"user-behavior-pdf"
									],
									"query": [
										{
											"key": "timePeriod",
											"value": "30d",
											"description": "Time period: 1d, 7d, or 30d"
										},
										{
											"key": "startDate",
											"value": "",
											"description": "Optional: Start date (ISO format)",
											"disabled": true
										},
										{
											"key": "endDate",
											"value": "",
											"description": "Optional: End date (ISO format)",
											"disabled": true
										}
									]
								},
								"description": "Generate a PDF report based on user behavior analytics including login activity, user registrations, QR code creations, scan activity, top active users, and security events."
							},
							"response": []
						}
					]
				},
				{
					"name": "Admin Notifications",
					"item": [
						{
							"name": "Toggle Admin Notifications",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"url": {
									"raw": "{{url}}/admin/notifications/toggle",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"notifications",
										"toggle"
									]
								},
								"description": "Toggle admin notifications on or off. When disabled, the admin will not receive system notifications such as critical logs or medical document uploads. This is separate from general push notifications. Requires admin authentication."
							},
							"response": [
								{
									"name": "Notifications Enabled",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/notifications/toggle",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"notifications",
												"toggle"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Admin notifications enabled successfully\",\n  \"data\": {\n    \"adminNotificationsEnabled\": true\n  },\n  \"code\": 200\n}"
								},
								{
									"name": "Notifications Disabled",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/notifications/toggle",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"notifications",
												"toggle"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Admin notifications disabled successfully\",\n  \"data\": {\n    \"adminNotificationsEnabled\": false\n  },\n  \"code\": 200\n}"
								},
								{
									"name": "Unauthorized",
									"originalRequest": {
										"method": "POST",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/notifications/toggle",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"notifications",
												"toggle"
											]
										}
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Access denied. Admin privileges required\",\n  \"data\": null,\n  \"code\": 403\n}"
								}
							]
						},
						{
							"name": "Get Admin Notification Status",
							"request": {
								"auth": {
									"type": "bearer",
									"bearer": [
										{
											"key": "token",
											"value": "{{token}}",
											"type": "string"
										}
									]
								},
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/admin/notifications/status",
									"host": [
										"{{url}}"
									],
									"path": [
										"admin",
										"notifications",
										"status"
									]
								},
								"description": "Get the current admin notification preference. Returns whether admin notifications are enabled or disabled. Requires admin authentication."
							},
							"response": [
								{
									"name": "Status Retrieved",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/notifications/status",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"notifications",
												"status"
											]
										}
									},
									"status": "OK",
									"code": 200,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": true,\n  \"message\": \"Admin notification status retrieved successfully\",\n  \"data\": {\n    \"adminNotificationsEnabled\": true\n  },\n  \"code\": 200\n}"
								},
								{
									"name": "Unauthorized",
									"originalRequest": {
										"method": "GET",
										"header": [
											{
												"key": "Authorization",
												"value": "Bearer {{token}}"
											}
										],
										"url": {
											"raw": "{{url}}/admin/notifications/status",
											"host": [
												"{{url}}"
											],
											"path": [
												"admin",
												"notifications",
												"status"
											]
										}
									},
									"status": "Forbidden",
									"code": 403,
									"_postman_previewlanguage": "json",
									"header": [],
									"cookie": [],
									"body": "{\n  \"success\": false,\n  \"message\": \"Access denied. Admin privileges required\",\n  \"data\": null,\n  \"code\": 403\n}"
								}
							]
						}
					]
				}
			]
		},
		{
			"name": "subscriptions",
			"item": [
				{
					"name": "Get All Subscription Packages",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{url}}/subscription/all",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"all"
							]
						},
						"description": "Get all available subscription packages from Stripe with pricing and features."
					},
					"response": [
						{
							"name": "Successful Packages Response",
							"originalRequest": {
								"method": "GET",
								"header": [],
								"url": {
									"raw": "{{url}}/subscription/all",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"all"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Subscription packages retrieved successfully\",\n  \"data\": [\n    {\n      \"id\": \"prod_123456\",\n      \"name\": \"Basic Plan\",\n      \"description\": \"Perfect for individuals and small teams\",\n      \"features\": [\"Up to 10 QR codes\", \"Basic analytics\", \"Email support\"],\n      \"price\": {\n        \"id\": \"price_123456\",\n        \"amount\": 999,\n        \"currency\": \"usd\",\n        \"interval\": \"month\"\n      }\n    },\n    {\n      \"id\": \"prod_789012\",\n      \"name\": \"Pro Plan\",\n      \"description\": \"Advanced features for growing businesses\",\n      \"features\": [\"Unlimited QR codes\", \"Advanced analytics\", \"Priority support\", \"Custom branding\"],\n      \"price\": {\n        \"id\": \"price_789012\",\n        \"amount\": 2999,\n        \"currency\": \"usd\",\n        \"interval\": \"month\"\n      }\n    }\n  ]\n}"
						}
					]
				},
				{
					"name": "Create Checkout Session",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract session ID and URL from response",
									"pm.test(\"Extract checkout session info\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data) {",
									"        if (jsonData.data.sessionId) {",
									"            pm.environment.set(\"checkout_session_id\", jsonData.data.sessionId);",
									"            pm.collectionVariables.set(\"checkout_session_id\", jsonData.data.sessionId);",
									"            console.log(\"Checkout session ID saved:\", jsonData.data.sessionId);",
									"        }",
									"        if (jsonData.data.url) {",
									"            pm.environment.set(\"checkout_url\", jsonData.data.url);",
									"            pm.collectionVariables.set(\"checkout_url\", jsonData.data.url);",
									"            console.log(\"Checkout URL saved:\", jsonData.data.url);",
									"        }",
									"    }",
									"});"
								],
								"type": "text/javascript",
								"packages": {},
								"requests": {}
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"priceId\": \"price_1SefD1E5XdhXbtjDs3ZXqAEk\",\n  \"successUrl\": \"/api-docs\",\n  \"cancelUrl\": \"/api-docs\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/subscription/checkout-session",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"checkout-session"
							]
						},
						"description": "Create a Stripe checkout session for subscription purchase. Requires authentication."
					},
					"response": [
						{
							"name": "Successful Checkout Session",
							"originalRequest": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"priceId\": \"price_123456\",\n  \"successUrl\": \"https://yourapp.com/success?session_id={CHECKOUT_SESSION_ID}\",\n  \"cancelUrl\": \"https://yourapp.com/cancel\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/subscription/checkout-session",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"checkout-session"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Checkout session created successfully\",\n  \"data\": {\n    \"sessionId\": \"cs_test_123456789\",\n    \"url\": \"https://checkout.stripe.com/pay/cs_test_123456789\"\n  }\n}"
						},
						{
							"name": "Missing Price ID Error",
							"originalRequest": {
								"method": "POST",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									},
									{
										"key": "Content-Type",
										"value": "application/json"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"successUrl\": \"https://yourapp.com/success\",\n  \"cancelUrl\": \"https://yourapp.com/cancel\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/subscription/checkout-session",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"checkout-session"
									]
								}
							},
							"status": "Bad Request",
							"code": 400,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": false,\n  \"message\": \"Price ID is required\",\n  \"data\": null,\n  \"statusCode\": 400\n}"
						}
					]
				},
				{
					"name": "Get User Subscriptions",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"// Extract subscription ID from response",
									"pm.test(\"Extract subscription ID\", function () {",
									"    var jsonData = pm.response.json();",
									"    if (jsonData.success && jsonData.data && jsonData.data.length > 0) {",
									"        const firstSubscription = jsonData.data[0];",
									"        if (firstSubscription.stripe_subscription_id) {",
									"            pm.environment.set(\"subscription_id\", firstSubscription.stripe_subscription_id);",
									"            pm.collectionVariables.set(\"subscription_id\", firstSubscription.stripe_subscription_id);",
									"            console.log(\"Subscription ID saved:\", firstSubscription.stripe_subscription_id);",
									"        }",
									"    }",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/subscription/my-subscriptions",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"my-subscriptions"
							]
						},
						"description": "Get all active subscriptions for the authenticated user."
					},
					"response": [
						{
							"name": "Successful User Subscriptions",
							"originalRequest": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/subscription/my-subscriptions",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"my-subscriptions"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"User subscriptions retrieved successfully\",\n  \"data\": [\n    {\n      \"_id\": \"60f7b3b3b3b3b3b3b3b3b3d1\",\n      \"stripe_subscription_id\": \"sub_123456789\",\n      \"user_id\": \"60f7b3b3b3b3b3b3b3b3b3a1\",\n      \"stripe_customer_id\": \"cus_123456789\",\n      \"product_id\": \"prod_123456\",\n      \"price_id\": \"price_123456\",\n      \"status\": \"active\",\n      \"current_period_start\": \"2024-01-15T10:30:00.000Z\",\n      \"current_period_end\": \"2024-02-15T10:30:00.000Z\",\n      \"amount\": 999,\n      \"currency\": \"usd\",\n      \"interval\": \"month\",\n      \"interval_count\": 1,\n      \"cancel_at_period_end\": false,\n      \"is_active\": true,\n      \"created_at\": \"2024-01-15T10:30:00.000Z\",\n      \"updated_at\": \"2024-01-15T10:30:00.000Z\"\n    }\n  ]\n}"
						}
					]
				},
				{
					"name": "Get Subscription Status",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/subscription/status",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"status"
							]
						},
						"description": "Check if the authenticated user has an active subscription."
					},
					"response": [
						{
							"name": "Active Subscription Status",
							"originalRequest": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/subscription/status",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"status"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Subscription status retrieved successfully\",\n  \"data\": {\n    \"hasActiveSubscription\": true,\n    \"subscription\": {\n      \"_id\": \"60f7b3b3b3b3b3b3b3b3b3d1\",\n      \"stripe_subscription_id\": \"sub_123456789\",\n      \"status\": \"active\",\n      \"current_period_end\": \"2024-02-15T10:30:00.000Z\",\n      \"amount\": 999,\n      \"currency\": \"usd\",\n      \"interval\": \"month\"\n    },\n    \"expiresAt\": \"2024-02-15T10:30:00.000Z\"\n  }\n}"
						},
						{
							"name": "No Active Subscription",
							"originalRequest": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/subscription/status",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"status"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Subscription status retrieved successfully\",\n  \"data\": {\n    \"hasActiveSubscription\": false,\n    \"subscription\": null,\n    \"expiresAt\": null\n  }\n}"
						}
					]
				},
				{
					"name": "Cancel Subscription",
					"request": {
						"method": "DELETE",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/subscription/cancel/:subscriptionId",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"cancel",
								":subscriptionId"
							],
							"variable": [
								{
									"key": "subscriptionId",
									"value": "{{subscription_id}}",
									"description": "Stripe subscription ID to cancel"
								}
							]
						},
						"description": "Cancel an active subscription. The subscription will be canceled immediately."
					},
					"response": [
						{
							"name": "Successful Cancellation",
							"originalRequest": {
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/subscription/cancel/sub_123456789",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"cancel",
										"sub_123456789"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Subscription canceled successfully\",\n  \"data\": {\n    \"subscriptionId\": \"sub_123456789\",\n    \"status\": \"canceled\",\n    \"canceled_at\": 1705320600\n  }\n}"
						},
						{
							"name": "Subscription Not Found",
							"originalRequest": {
								"method": "DELETE",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/subscription/cancel/sub_nonexistent",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"cancel",
										"sub_nonexistent"
									]
								}
							},
							"status": "Not Found",
							"code": 404,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": false,\n  \"message\": \"Subscription not found or already canceled\",\n  \"data\": null,\n  \"statusCode\": 404\n}"
						}
					]
				},
				{
					"name": "Check Expired Subscriptions",
					"request": {
						"method": "POST",
						"header": [],
						"url": {
							"raw": "{{url}}/subscription/check-expired",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"check-expired"
							]
						},
						"description": "Administrative endpoint to check and update expired subscriptions. This syncs local database with Stripe status."
					},
					"response": [
						{
							"name": "Successful Expiry Check",
							"originalRequest": {
								"method": "POST",
								"header": [],
								"url": {
									"raw": "{{url}}/subscription/check-expired",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"check-expired"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Checked and updated 3 expired subscriptions\",\n  \"data\": {\n    \"updatedCount\": 3,\n    \"totalChecked\": 5\n  }\n}"
						}
					]
				},
				{
					"name": "Stripe Webhook",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							},
							{
								"key": "stripe-signature",
								"value": "t=1234567890,v1=signature_here",
								"description": "Stripe webhook signature for verification"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"id\": \"evt_123456789\",\n  \"object\": \"event\",\n  \"api_version\": \"2020-08-27\",\n  \"created\": 1234567890,\n  \"data\": {\n    \"object\": {\n      \"id\": \"sub_123456789\",\n      \"object\": \"subscription\",\n      \"status\": \"active\",\n      \"customer\": \"cus_123456789\",\n      \"current_period_start\": 1234567890,\n      \"current_period_end\": 1237159890,\n      \"items\": {\n        \"data\": [\n          {\n            \"price\": {\n              \"id\": \"price_123456\",\n              \"product\": \"prod_123456\",\n              \"unit_amount\": 999,\n              \"currency\": \"usd\",\n              \"recurring\": {\n                \"interval\": \"month\",\n                \"interval_count\": 1\n              }\n            }\n          }\n        ]\n      }\n    }\n  },\n  \"livemode\": false,\n  \"pending_webhooks\": 1,\n  \"request\": {\n    \"id\": \"req_123456789\",\n    \"idempotency_key\": null\n  },\n  \"type\": \"customer.subscription.created\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/subscription/webhook",
							"host": [
								"{{url}}"
							],
							"path": [
								"subscription",
								"webhook"
							]
						},
						"description": "Stripe webhook endpoint for handling subscription events. This endpoint processes various subscription lifecycle events from Stripe."
					},
					"response": [
						{
							"name": "Webhook Processed Successfully",
							"originalRequest": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "stripe-signature",
										"value": "t=1234567890,v1=valid_signature"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"id\": \"evt_123456789\",\n  \"object\": \"event\",\n  \"type\": \"customer.subscription.created\",\n  \"data\": {\n    \"object\": {\n      \"id\": \"sub_123456789\",\n      \"status\": \"active\"\n    }\n  }\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/subscription/webhook",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"webhook"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"received\": true\n}"
						},
						{
							"name": "Invalid Webhook Signature",
							"originalRequest": {
								"method": "POST",
								"header": [
									{
										"key": "Content-Type",
										"value": "application/json"
									},
									{
										"key": "stripe-signature",
										"value": "t=1234567890,v1=invalid_signature"
									}
								],
								"body": {
									"mode": "raw",
									"raw": "{\n  \"id\": \"evt_123456789\",\n  \"type\": \"customer.subscription.created\"\n}",
									"options": {
										"raw": {
											"language": "json"
										}
									}
								},
								"url": {
									"raw": "{{url}}/subscription/webhook",
									"host": [
										"{{url}}"
									],
									"path": [
										"subscription",
										"webhook"
									]
								}
							},
							"status": "Bad Request",
							"code": 400,
							"_postman_previewlanguage": "text",
							"header": [],
							"cookie": [],
							"body": "Webhook Error: Invalid signature"
						}
					]
				}
			],
			"description": "Subscription management endpoints for handling Stripe-based subscriptions including package listing, checkout session creation, subscription management, and webhook processing."
		},
		{
			"name": "dashboard",
			"item": [
				{
					"name": "Get Dashboard Cards",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/dashboard/cards",
							"host": [
								"{{url}}"
							],
							"path": [
								"dashboard",
								"cards"
							]
						},
						"description": "Get dashboard cards data for the authenticated user including QR codes count, scans count, and other user-specific metrics."
					},
					"response": [
						{
							"name": "Successful Dashboard Cards",
							"originalRequest": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/dashboard/cards",
									"host": [
										"{{url}}"
									],
									"path": [
										"dashboard",
										"cards"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Dashboard data retrieved successfully\",\n  \"data\": {\n    \"totalQrCodes\": 15,\n    \"totalScans\": 247,\n    \"activeQrCodes\": 12,\n    \"inactiveQrCodes\": 3,\n    \"recentScans\": 23,\n    \"topPerformingQrCode\": {\n      \"_id\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n      \"title\": \"My Car QR Code\",\n      \"scanCount\": 45\n    }\n  }\n}"
						}
					]
				},
				{
					"name": "Get Dashboard Analytics",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/dashboard/analytics",
							"host": [
								"{{url}}"
							],
							"path": [
								"dashboard",
								"analytics"
							]
						},
						"description": "Get detailed dashboard analytics for the authenticated user including scan trends, QR code performance, and usage patterns."
					},
					"response": [
						{
							"name": "Successful Dashboard Analytics",
							"originalRequest": {
								"method": "GET",
								"header": [
									{
										"key": "Authorization",
										"value": "Bearer {{token}}"
									}
								],
								"url": {
									"raw": "{{url}}/dashboard/analytics",
									"host": [
										"{{url}}"
									],
									"path": [
										"dashboard",
										"analytics"
									]
								}
							},
							"status": "OK",
							"code": 200,
							"_postman_previewlanguage": "json",
							"header": [],
							"cookie": [],
							"body": "{\n  \"success\": true,\n  \"message\": \"Dashboard analytics retrieved successfully\",\n  \"data\": {\n    \"scanTrends\": [\n      {\n        \"date\": \"2024-01-15\",\n        \"scans\": 12\n      },\n      {\n        \"date\": \"2024-01-16\",\n        \"scans\": 18\n      },\n      {\n        \"date\": \"2024-01-17\",\n        \"scans\": 15\n      }\n    ],\n    \"qrCodePerformance\": [\n      {\n        \"qrCodeId\": \"60f7b3b3b3b3b3b3b3b3b3b3\",\n        \"title\": \"My Car QR Code\",\n        \"type\": \"CAR\",\n        \"scanCount\": 45,\n        \"lastScanned\": \"2024-01-17T14:30:00.000Z\"\n      },\n      {\n        \"qrCodeId\": \"60f7b3b3b3b3b3b3b3b3b3b4\",\n        \"title\": \"Pet ID QR Code\",\n        \"type\": \"PET\",\n        \"scanCount\": 32,\n        \"lastScanned\": \"2024-01-17T12:15:00.000Z\"\n      }\n    ],\n    \"usagePatterns\": {\n      \"mostActiveDay\": \"Friday\",\n      \"mostActiveHour\": 14,\n      \"averageScansPerDay\": 8.5,\n      \"totalUniqueLocations\": 23\n    }\n  }\n}"
						}
					]
				}
			]
		},
		{
			"name": "logging",
			"item": [
				{
					"name": "Get Logs",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/logging",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging"
							],
							"query": [
								{
									"key": "module",
									"value": "",
									"description": "Filter by module name",
									"disabled": true
								},
								{
									"key": "level",
									"value": "",
									"description": "Filter by log level (INFO, WARN, ERROR, DEBUG, CRITICAL)",
									"disabled": true
								},
								{
									"key": "admin_id",
									"value": "",
									"description": "Filter by admin ID",
									"disabled": true
								},
								{
									"key": "user_id",
									"value": "",
									"description": "Filter by user ID",
									"disabled": true
								},
								{
									"key": "startDate",
									"value": "",
									"description": "Start date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "endDate",
									"value": "",
									"description": "End date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "page",
									"value": "1",
									"description": "Page number for pagination",
									"disabled": true
								},
								{
									"key": "limit",
									"value": "50",
									"description": "Number of logs per page (max 1000)",
									"disabled": true
								}
							]
						},
						"description": "Retrieve logs with optional filtering by module, level, admin ID, user ID, and date range. Supports pagination."
					},
					"response": []
				},
				{
					"name": "Create Log Entry",
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"module\": \"UserService\",\n  \"level\": \"INFO\",\n  \"action\": \"User profile updated successfully\",\n  \"metadata\": {\n    \"userId\": \"1234567890abcdef\",\n    \"changes\": [\"email\", \"phone\"]\n  },\n  \"error_details\": null\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/logging",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging"
							]
						},
						"description": "Create a new log entry manually. ERROR and CRITICAL logs will trigger push notifications to the admin. Required fields: module, level (INFO|WARN|ERROR|DEBUG|CRITICAL), action."
					},
					"response": []
				},
				{
					"name": "Get Default Admin Logs",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/logging/admin",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging",
								"admin"
							],
							"query": [
								{
									"key": "module",
									"value": "",
									"description": "Filter by module name",
									"disabled": true
								},
								{
									"key": "level",
									"value": "",
									"description": "Filter by log level (INFO, WARN, ERROR, DEBUG, CRITICAL)",
									"disabled": true
								},
								{
									"key": "startDate",
									"value": "",
									"description": "Start date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "endDate",
									"value": "",
									"description": "End date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "page",
									"value": "1",
									"description": "Page number for pagination",
									"disabled": true
								},
								{
									"key": "limit",
									"value": "50",
									"description": "Number of logs per page (max 1000)",
									"disabled": true
								}
							]
						},
						"description": "Retrieve logs specific to the default admin user (ID: 694564d876661ff3f9b4887f) with optional filtering."
					},
					"response": []
				},
				{
					"name": "Get Logs by Admin ID",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/logging/admin/:adminId",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging",
								"admin",
								":adminId"
							],
							"query": [
								{
									"key": "module",
									"value": "",
									"description": "Filter by module name",
									"disabled": true
								},
								{
									"key": "level",
									"value": "",
									"description": "Filter by log level (INFO, WARN, ERROR, DEBUG, CRITICAL)",
									"disabled": true
								},
								{
									"key": "startDate",
									"value": "",
									"description": "Start date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "endDate",
									"value": "",
									"description": "End date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "page",
									"value": "1",
									"description": "Page number for pagination",
									"disabled": true
								},
								{
									"key": "limit",
									"value": "50",
									"description": "Number of logs per page (max 1000)",
									"disabled": true
								}
							],
							"variable": [
								{
									"key": "adminId",
									"value": "694564d876661ff3f9b4887f",
									"description": "Admin user ID"
								}
							]
						},
						"description": "Retrieve logs for a specific admin user by ID with optional filtering."
					},
					"response": []
				},
				{
					"name": "Get Log Statistics",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/logging/statistics",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging",
								"statistics"
							],
							"query": [
								{
									"key": "startDate",
									"value": "",
									"description": "Start date for statistics calculation (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "endDate",
									"value": "",
									"description": "End date for statistics calculation (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "module",
									"value": "",
									"description": "Filter statistics by module",
									"disabled": true
								}
							]
						},
						"description": "Retrieve aggregated statistics about logs including counts by level and module."
					},
					"response": []
				},
				{
					"name": "Generate PDF Report",
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Authorization",
								"value": "Bearer {{token}}"
							}
						],
						"url": {
							"raw": "{{url}}/logging/detail-pdf",
							"host": [
								"{{url}}"
							],
							"path": [
								"logging",
								"detail-pdf"
							],
							"query": [
								{
									"key": "module",
									"value": "",
									"description": "Filter by module name",
									"disabled": true
								},
								{
									"key": "level",
									"value": "",
									"description": "Filter by log level (INFO, WARN, ERROR, DEBUG, CRITICAL)",
									"disabled": true
								},
								{
									"key": "startDate",
									"value": "",
									"description": "Start date for date range filter (ISO 8601 format)",
									"disabled": true
								},
								{
									"key": "endDate",
									"value": "",
									"description": "End date for date range filter (ISO 8601 format)",
									"disabled": true
								}
							]
						},
						"description": "Generate a detailed PDF report of logging data for admin users. Includes formatted tables, summaries, and timestamps. Filters can be applied via query parameters. The response will be a PDF file download."
					},
					"response": []
				}
			]
		},
		{
			"name": "contact",
			"item": [
				{
					"name": "Create Contact Message",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"message\": \"I need help with my QR code.\",\n  \"phone\": \"+1234567890\",\n  \"subject\": \"Support Request\",\n  \"contact_priority\": \"HIGH\",\n  \"userId\":\"692ec6ce7a4a60c20fb22f34\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/help-and-feedback/contact",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"contact"
							]
						},
						"description": "Create a new contact/support message for help and feedback."
					},
					"response": []
				},
				{
					"name": "Update Status",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PUT",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"status\":\"resolved\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/help-and-feedback/contact/:id/status",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"contact",
								":id",
								"status"
							],
							"variable": [
								{
									"key": "id",
									"value": "6964e49885c797f7d8f6e549"
								}
							]
						},
						"description": "Create a new contact/support message for help and feedback."
					},
					"response": []
				},
				{
					"name": "Update Status Copy",
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PUT",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "priority",
									"value": "",
									"description": "'high', 'medium', 'low'",
									"type": "text"
								}
							]
						},
						"url": {
							"raw": "{{url}}/help-and-feedback/contact/:id/priority",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"contact",
								":id",
								"priority"
							],
							"variable": [
								{
									"key": "id",
									"value": ""
								}
							]
						},
						"description": "Create a new contact/support message for help and feedback."
					},
					"response": []
				},
				{
					"name": "Export Report",
					"protocolProfileBehavior": {
						"disableBodyPruning": true
					},
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"message\": \"I need help with my QR code.\",\n  \"phone\": \"+1234567890\",\n  \"subject\": \"Support Request\",\n  \"contact_priority\": \"HIGH\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/help-and-feedback/export/pdf",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"export",
								"pdf"
							]
						},
						"description": "Create a new contact/support message for help and feedback."
					},
					"response": []
				},
				{
					"name": "Update Contact",
					"request": {
						"method": "PUT",
						"header": [
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"John Doe\",\n  \"email\": \"john@example.com\",\n  \"message\": \"I need help with my QR code.\",\n  \"phone\": \"+1234567890\",\n  \"subject\": \"Support Request\",\n  \"contact_priority\": \"HIGH\",\n  \"contact_status\": \"OPEN\",\n  \"scan_id\": \"<scan_id_here>\",\n  \"qrcode_id\": \"<qrcode_id_here>\",\n  \"user_id\": \"<user_id_here>\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{url}}/help-and-feedback/contact",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"contact"
							]
						},
						"description": "Create a new contact/support message for help and feedback."
					},
					"response": []
				},
				{
					"name": "Get Contact Messages",
					"request": {
						"method": "GET",
						"header": [],
						"url": {
							"raw": "{{url}}/help-and-feedback/contact",
							"host": [
								"{{url}}"
							],
							"path": [
								"help-and-feedback",
								"contact"
							]
						},
						"description": "Retrieve contact/support messages for help and feedback."
					},
					"response": []
				}
			]
		}
	],
	"event": [
		{
			"listen": "prerequest",
			"script": {
				"type": "text/javascript",
				"requests": {},
				"exec": [
					"// Global pre-request script",
					"console.log('🚀 Making request to:', pm.request.url.toString());",
					"",
					"// Check if token exists for authenticated requests",
					"const currentToken = pm.environment.get('token') || pm.collectionVariables.get('token');",
					"if (currentToken) {",
					"    console.log('🔑 Using token:', currentToken.substring(0, 20) + '...');",
					"} else {",
					"    console.log('⚠️ No token found - this might be expected for public endpoints');",
					"}",
					"",
					"// Log current timestamp",
					"console.log('⏰ Request time:', new Date().toISOString());"
				]
			}
		},
		{
			"listen": "test",
			"script": {
				"type": "text/javascript",
				"requests": {},
				"exec": [
					"// Global test script",
					"console.log('📊 Response status:', pm.response.status, pm.response.code);",
					"console.log('⏱️ Response time:', pm.response.responseTime + 'ms');",
					"",
					"// Basic response validation",
					"pm.test('Response time is reasonable', function () {",
					"    pm.expect(pm.response.responseTime).to.be.below(5000);",
					"});",
					"",
					"pm.test('Response has valid JSON', function () {",
					"    pm.response.to.have.jsonBody();",
					"});",
					"",
					"// Log response for debugging (first 200 chars)",
					"const responseText = pm.response.text();",
					"console.log('📝 Response preview:', responseText.substring(0, 200) + (responseText.length > 200 ? '...' : ''));"
				]
			}
		}
	],
	"variable": [
		{
			"key": "url",
			"value": "http://localhost:3002/api",
			"disabled": true
		},
		{
			"key": "token",
			"value": ""
		},
		{
			"key": "user_id",
			"value": ""
		},
		{
			"key": "user_email",
			"value": ""
		},
		{
			"key": "qrcode_id",
			"value": ""
		},
		{
			"key": "scan_id",
			"value": ""
		},
		{
			"key": "notification_id",
			"value": ""
		},
		{
			"key": "admin_token",
			"value": ""
		},
		{
			"key": "admin_user_id",
			"value": ""
		},
		{
			"key": "admin_user_email",
			"value": ""
		},
		{
			"key": "admin_user_role",
			"value": ""
		},
		{
			"key": "subscription_id",
			"value": ""
		},
		{
			"key": "checkout_session_id",
			"value": ""
		},
		{
			"key": "checkout_url",
			"value": ""
		},
		{
			"key": "admin_id",
			"value": "694564d876661ff3f9b4887f",
			"description": "Default admin ID for logging endpoints"
		},
		{
			"key": "url",
			"value": "http://localhost:3002/api"
		},
		{
			"key": "admin_email",
			"value": "quickconnect-admin@yopmail.com",
			"description": "Default admin email for login"
		},
		{
			"key": "admin_password",
			"value": "Pa$$w0rd!",
			"description": "Default admin password for login"
		}
	]
}