{
	"info": {
		"name": "Collector Supermarket API",
		"description": "API collection for the Laravel Supermarket API, backed by the `collector` database.",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"auth": {
		"type": "bearer",
		"bearer": [
			{ "key": "token", "value": "{{token}}", "type": "string" }
		]
	},
	"variable": [
		{ "key": "base_url", "value": "http://localhost:8000/api/v1" },
		{ "key": "token", "value": "" },
		{ "key": "email", "value": "shimaataha637@gmail.com" },
		{ "key": "password", "value": "" },
		{ "key": "product_id", "value": "1" },
		{ "key": "barcode", "value": "6221234567890" }
	],
	"item": [
		{
			"name": "Auth",
			"item": [
				{
					"name": "Login",
					"request": {
						"auth": { "type": "noauth" },
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"url": { "raw": "{{base_url}}/login", "host": ["{{base_url}}"], "path": ["login"] },
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"{{email}}\",\n  \"password\": \"{{password}}\"\n}"
						}
					},
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"if (pm.response.code === 200) {",
									"    const json = pm.response.json();",
									"    pm.collectionVariables.set('token', json.token);",
									"    pm.test('token saved', () => pm.expect(json.token).to.be.a('string'));",
									"}"
								]
							}
						}
					]
				},
				{
					"name": "Forgot Password",
					"request": {
						"auth": { "type": "noauth" },
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"url": { "raw": "{{base_url}}/forgot-password", "host": ["{{base_url}}"], "path": ["forgot-password"] },
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"{{email}}\"\n}"
						}
					}
				},
				{
					"name": "Reset Password",
					"request": {
						"auth": { "type": "noauth" },
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"url": { "raw": "{{base_url}}/reset-password", "host": ["{{base_url}}"], "path": ["reset-password"] },
						"body": {
							"mode": "raw",
							"raw": "{\n  \"email\": \"{{email}}\",\n  \"token\": \"\",\n  \"password\": \"\",\n  \"password_confirmation\": \"\"\n}"
						}
					}
				}
			]
		},
		{
			"name": "Profile",
			"item": [
				{
					"name": "Get Profile",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": { "raw": "{{base_url}}/profile", "host": ["{{base_url}}"], "path": ["profile"] }
					}
				},
				{
					"name": "Update Profile",
					"request": {
						"method": "PATCH",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"url": { "raw": "{{base_url}}/profile", "host": ["{{base_url}}"], "path": ["profile"] },
						"body": {
							"mode": "raw",
							"raw": "{\n  \"name\": \"Shimaa T\",\n  \"email\": \"{{email}}\"\n}"
						}
					}
				},
				{
					"name": "Update Password",
					"request": {
						"method": "PUT",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "Content-Type", "value": "application/json" }
						],
						"url": { "raw": "{{base_url}}/profile/password", "host": ["{{base_url}}"], "path": ["profile", "password"] },
						"body": {
							"mode": "raw",
							"raw": "{\n  \"current_password\": \"\",\n  \"password\": \"\",\n  \"password_confirmation\": \"\"\n}"
						}
					}
				}
			]
		},
		{
			"name": "Products",
			"item": [
				{
					"name": "List Products",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": {
							"raw": "{{base_url}}/products?per_page=25",
							"host": ["{{base_url}}"],
							"path": ["products"],
							"query": [{ "key": "per_page", "value": "25" }]
						}
					}
				},
				{
					"name": "Get Product",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": { "raw": "{{base_url}}/products/{{product_id}}", "host": ["{{base_url}}"], "path": ["products", "{{product_id}}"] }
					}
				},
				{
					"name": "Barcode Lookup",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": { "raw": "{{base_url}}/products/barcode/{{barcode}}", "host": ["{{base_url}}"], "path": ["products", "barcode", "{{barcode}}"] }
					}
				},
				{
					"name": "Create Product",
					"request": {
						"method": "POST",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": { "raw": "{{base_url}}/products", "host": ["{{base_url}}"], "path": ["products"] },
						"body": {
							"mode": "formdata",
							"formdata": [
								{ "key": "name", "value": "New Product", "type": "text" },
								{ "key": "barcode", "value": "1112223334445", "type": "text" },
								{ "key": "price", "value": "9.99", "type": "text" },
								{ "key": "image", "type": "file", "src": [] }
							]
						}
					}
				},
				{
					"name": "Update Product",
					"request": {
						"method": "POST",
						"header": [
							{ "key": "Accept", "value": "application/json" },
							{ "key": "X-HTTP-Method-Override", "value": "PATCH" }
						],
						"url": { "raw": "{{base_url}}/products/{{product_id}}", "host": ["{{base_url}}"], "path": ["products", "{{product_id}}"] },
						"body": {
							"mode": "formdata",
							"formdata": [
								{ "key": "name", "value": "Updated Product Name", "type": "text" },
								{ "key": "price", "value": "12.50", "type": "text" },
								{ "key": "image", "type": "file", "src": [] }
							]
						},
						"description": "IMPORTANT: keep the method as POST. Do NOT change it to PATCH/PUT in the method dropdown — PHP does not parse multipart/form-data bodies on native PATCH/PUT requests, so the image (and every other field) would silently fail to arrive. The X-HTTP-Method-Override: PATCH header is what makes Laravel treat this POST as the PATCH update route. Select a real file for 'image' via Select Files; leaving it unset is what causes Postman's EISDIR error."
					}
				},
				{
					"name": "Delete Product",
					"request": {
						"method": "DELETE",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": { "raw": "{{base_url}}/products/{{product_id}}", "host": ["{{base_url}}"], "path": ["products", "{{product_id}}"] }
					}
				}
			]
		},
		{
			"name": "Sync",
			"item": [
				{
					"name": "Full Sync",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": {
							"raw": "{{base_url}}/products/sync?per_page=200",
							"host": ["{{base_url}}"],
							"path": ["products", "sync"],
							"query": [{ "key": "per_page", "value": "200" }]
						}
					}
				},
				{
					"name": "Delta Sync",
					"request": {
						"method": "GET",
						"header": [{ "key": "Accept", "value": "application/json" }],
						"url": {
							"raw": "{{base_url}}/products/sync?since=2026-08-01T00:00:00Z&per_page=200",
							"host": ["{{base_url}}"],
							"path": ["products", "sync"],
							"query": [
								{ "key": "since", "value": "2026-08-01T00:00:00Z" },
								{ "key": "per_page", "value": "200" }
							]
						}
					}
				}
			]
		}
	]
}
