{
  "info": {
    "name": "Rfoof API",
    "description": "Rfoof Shopping Marketplace API Collection",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "variable": [
    {
      "key": "base_url",
      "value": "http://localhost:8000/api/v1"
    },
    {
      "key": "access_token",
      "value": ""
    },
    {
      "key": "refresh_token",
      "value": ""
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{access_token}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Auth",
      "item": [
        {
          "name": "Firebase Login",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "var json = pm.response.json();",
                  "if (json.access) {",
                  "    pm.collectionVariables.set('access_token', json.access);",
                  "    pm.collectionVariables.set('refresh_token', json.refresh);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"id_token\": \"<firebase_id_token>\"\n}"
            },
            "url": "{{base_url}}/auth/firebase/"
          }
        },
        {
          "name": "Refresh Token",
          "event": [
            {
              "listen": "test",
              "script": {
                "exec": [
                  "var json = pm.response.json();",
                  "if (json.access) {",
                  "    pm.collectionVariables.set('access_token', json.access);",
                  "}"
                ]
              }
            }
          ],
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"refresh\": \"{{refresh_token}}\"\n}"
            },
            "url": "{{base_url}}/auth/refresh/"
          }
        },
        {
          "name": "Logout",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"refresh\": \"{{refresh_token}}\"\n}"
            },
            "url": "{{base_url}}/auth/logout/"
          }
        },
        {
          "name": "Get Profile",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/auth/me/"
          }
        },
        {
          "name": "Update Profile",
          "request": {
            "method": "PATCH",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"full_name\": \"Ahmed\",\n  \"language\": \"ar\",\n  \"notifications_enabled\": true\n}"
            },
            "url": "{{base_url}}/auth/me/"
          }
        }
      ]
    },
    {
      "name": "Home",
      "item": [
        {
          "name": "Home Feed (Guest)",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/home/guest/"
          }
        },
        {
          "name": "Home Feed (Authenticated)",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/home/"
          }
        }
      ]
    },
    {
      "name": "Search",
      "item": [
        {
          "name": "Global Search",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/search/?q=fashion",
              "host": ["{{base_url}}"],
              "path": ["search", ""],
              "query": [
                { "key": "q", "value": "fashion" }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Categories",
      "item": [
        {
          "name": "List Categories",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/categories/"
          }
        },
        {
          "name": "Get Category",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/categories/1/"
          }
        },
        {
          "name": "Category Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/categories/1/stores/"
          }
        }
      ]
    },
    {
      "name": "Stores",
      "item": [
        {
          "name": "List Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/stores/?is_top=true&ordering=-rating",
              "host": ["{{base_url}}"],
              "path": ["stores", ""],
              "query": [
                { "key": "is_top", "value": "true" },
                { "key": "ordering", "value": "-rating" }
              ]
            }
          }
        },
        {
          "name": "Get Store",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/1/"
          }
        },
        {
          "name": "Top Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/top/"
          }
        },
        {
          "name": "Recommended Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/recommended/"
          }
        },
        {
          "name": "Recently Added Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/recently-added/"
          }
        },
        {
          "name": "Store Branches",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/1/branches/"
          }
        },
        {
          "name": "Get Store Reviews",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/stores/1/reviews/"
          }
        },
        {
          "name": "Create Store Review",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"rating\": 5,\n  \"title\": \"Great store!\",\n  \"comment\": \"Excellent products and fast delivery.\"\n}"
            },
            "url": "{{base_url}}/stores/1/reviews/"
          }
        }
      ]
    },
    {
      "name": "Products",
      "item": [
        {
          "name": "List Products",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/products/?store=1&ordering=-price",
              "host": ["{{base_url}}"],
              "path": ["products", ""],
              "query": [
                { "key": "store", "value": "1" },
                { "key": "ordering", "value": "-price" }
              ]
            }
          }
        },
        {
          "name": "Get Product",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/products/1/"
          }
        },
        {
          "name": "Great Offers",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/products/great-offers/"
          }
        }
      ]
    },
    {
      "name": "Events",
      "item": [
        {
          "name": "List Events",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/events/"
          }
        },
        {
          "name": "Get Event",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/events/1/"
          }
        },
        {
          "name": "Event Stores",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/events/1/stores/"
          }
        }
      ]
    },
    {
      "name": "Favorites",
      "item": [
        {
          "name": "List Favorites",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/favorites/"
          }
        },
        {
          "name": "Add Favorite",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"store_id\": 1\n}"
            },
            "url": "{{base_url}}/favorites/"
          }
        },
        {
          "name": "Remove Favorite",
          "request": {
            "method": "DELETE",
            "url": "{{base_url}}/favorites/1/"
          }
        }
      ]
    },
    {
      "name": "Recently Viewed",
      "item": [
        {
          "name": "List Recently Viewed",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/recently-viewed/"
          }
        },
        {
          "name": "Record Store View",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"store_id\": 1\n}"
            },
            "url": "{{base_url}}/recently-viewed/"
          }
        }
      ]
    },
    {
      "name": "Coupons",
      "item": [
        {
          "name": "List Coupons",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/coupons/"
          }
        }
      ]
    },
    {
      "name": "Notifications",
      "item": [
        {
          "name": "List Notifications",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/notifications/"
          }
        },
        {
          "name": "Mark as Read",
          "request": {
            "method": "PATCH",
            "url": "{{base_url}}/notifications/1/read/"
          }
        },
        {
          "name": "Toggle Notification Settings",
          "request": {
            "method": "PATCH",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"notifications_enabled\": false\n}"
            },
            "url": "{{base_url}}/notifications/settings/"
          }
        }
      ]
    },
    {
      "name": "Referrals",
      "item": [
        {
          "name": "Get My Referral Code",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/referrals/my-code/"
          }
        },
        {
          "name": "Apply Referral Code",
          "request": {
            "method": "POST",
            "header": [
              { "key": "Content-Type", "value": "application/json" }
            ],
            "body": {
              "mode": "raw",
              "raw": "{\n  \"code\": \"HQPCX321\"\n}"
            },
            "url": "{{base_url}}/referrals/apply/"
          }
        },
        {
          "name": "Referral History",
          "request": {
            "method": "GET",
            "url": "{{base_url}}/referrals/history/"
          }
        }
      ]
    },
    {
      "name": "Banners",
      "item": [
        {
          "name": "List Banners",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": {
              "raw": "{{base_url}}/banners/?placement=home_top",
              "host": ["{{base_url}}"],
              "path": ["banners", ""],
              "query": [
                { "key": "placement", "value": "home_top" }
              ]
            }
          }
        }
      ]
    },
    {
      "name": "Health & Docs",
      "item": [
        {
          "name": "Health Check",
          "request": {
            "auth": { "type": "noauth" },
            "method": "GET",
            "url": "{{base_url}}/health/"
          }
        }
      ]
    }
  ]
}
