{
  "info": {
    "name": "Takeat V1 — Clientes",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json",
    "description": "Requer clients:read e token explicitamente autorizado. Veja /externo/v1/clientes."
  },
  "variable": [
    {
      "key": "baseUrl",
      "value": "https://public-api.takeat.app"
    },
    {
      "key": "accessToken",
      "value": ""
    },
    {
      "key": "restaurantId",
      "value": ""
    }
  ],
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{accessToken}}",
        "type": "string"
      }
    ]
  },
  "item": [
    {
      "name": "Listar clientes — Todos",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/v1/clients?page=1&per_page=100",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "clients"
          ],
          "query": [
            {
              "key": "page",
              "value": "1"
            },
            {
              "key": "per_page",
              "value": "100"
            },
            {
              "key": "restaurant_id",
              "value": "{{restaurantId}}",
              "disabled": true
            }
          ]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "pm.test(\"Página de buyers\", () => {",
              "  pm.response.to.have.status(200);",
              "  const body = pm.response.json();",
              "  pm.expect(body).to.have.all.keys(\"page\", \"per_page\", \"total\", \"total_pages\", \"clients\");",
              "  pm.expect(body.total_pages).to.eql(Math.ceil(body.total / body.per_page));",
              "  pm.expect(new Set(body.clients.map(c => c.id)).size).to.eql(body.clients.length);",
              "});"
            ]
          }
        }
      ]
    },
    {
      "name": "Listar clientes — Cadastrados",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/v1/clients?page=1&per_page=100&registered_in_clube=true",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "clients"
          ],
          "query": [
            {
              "key": "page",
              "value": "1"
            },
            {
              "key": "per_page",
              "value": "100"
            },
            {
              "key": "restaurant_id",
              "value": "{{restaurantId}}",
              "disabled": true
            },
            {
              "key": "registered_in_clube",
              "value": "true"
            }
          ]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "pm.test(\"Página de buyers\", () => {",
              "  pm.response.to.have.status(200);",
              "  const body = pm.response.json();",
              "  pm.expect(body).to.have.all.keys(\"page\", \"per_page\", \"total\", \"total_pages\", \"clients\");",
              "  pm.expect(body.total_pages).to.eql(Math.ceil(body.total / body.per_page));",
              "  pm.expect(new Set(body.clients.map(c => c.id)).size).to.eql(body.clients.length);",
              "  body.clients.forEach(c => pm.expect(c.registered_in_clube).to.eql(true));",
              "});"
            ]
          }
        }
      ]
    },
    {
      "name": "Listar clientes — Não cadastrados",
      "request": {
        "method": "GET",
        "url": {
          "raw": "{{baseUrl}}/v1/clients?page=1&per_page=100&registered_in_clube=false",
          "host": [
            "{{baseUrl}}"
          ],
          "path": [
            "v1",
            "clients"
          ],
          "query": [
            {
              "key": "page",
              "value": "1"
            },
            {
              "key": "per_page",
              "value": "100"
            },
            {
              "key": "restaurant_id",
              "value": "{{restaurantId}}",
              "disabled": true
            },
            {
              "key": "registered_in_clube",
              "value": "false"
            }
          ]
        }
      },
      "event": [
        {
          "listen": "test",
          "script": {
            "type": "text/javascript",
            "exec": [
              "pm.test(\"Página de buyers\", () => {",
              "  pm.response.to.have.status(200);",
              "  const body = pm.response.json();",
              "  pm.expect(body).to.have.all.keys(\"page\", \"per_page\", \"total\", \"total_pages\", \"clients\");",
              "  pm.expect(body.total_pages).to.eql(Math.ceil(body.total / body.per_page));",
              "  pm.expect(new Set(body.clients.map(c => c.id)).size).to.eql(body.clients.length);",
              "  body.clients.forEach(c => pm.expect(c.registered_in_clube).to.eql(false));",
              "});"
            ]
          }
        }
      ]
    }
  ]
}
