{
	"info": {
		"_postman_id": "apieco-api-v1",
		"name": "ApiEco - Ecoturismo Salvador",
		"description": "API REST para o sistema de Pontos Turísticos e Ecoturismo de Salvador, Bahia - Hospedado em: https://ecomap.developerapi.com.br",
		"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
	},
	"variable": [
		{
			"key": "baseUrl",
			"value": "https://ecomap.developerapi.com.br/public/api/v1",
			"type": "string"
		},
		{
			"key": "token",
			"value": "",
			"type": "string"
		}
	],
	"auth": {
		"type": "bearer",
		"bearer": [
			{
				"key": "token",
				"value": "{{token}}",
				"type": "string"
			}
		]
	},
	"item": [
		{
			"name": "Autenticação",
			"item": [
				{
					"name": "Registro",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = pm.response.json();",
									"if (jsonData.data && jsonData.data.token) {",
									"    pm.collectionVariables.set('token', jsonData.data.token);",
									"}",
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"name\": \"Usuário Teste\",\n    \"email\": \"teste@email.com\",\n    \"password\": \"password123\",\n    \"password_confirmation\": \"password123\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/auth/register",
							"host": ["{{baseUrl}}"],
							"path": ["auth", "register"]
						},
						"description": "Registrar novo usuário"
					},
					"response": []
				},
				{
					"name": "Login",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"var jsonData = pm.response.json();",
									"if (jsonData.data && jsonData.data.token) {",
									"    pm.collectionVariables.set('token', jsonData.data.token);",
									"}",
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"email\": \"admin@ecosistema.com\",\n    \"password\": \"password\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/auth/login",
							"host": ["{{baseUrl}}"],
							"path": ["auth", "login"]
						},
						"description": "Login de usuário (retorna token)"
					},
					"response": []
				},
				{
					"name": "Perfil (Auth)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/auth/perfil",
							"host": ["{{baseUrl}}"],
							"path": ["auth", "perfil"]
						},
						"description": "Obter dados do usuário autenticado"
					},
					"response": []
				},
				{
					"name": "Logout (Auth)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/auth/logout",
							"host": ["{{baseUrl}}"],
							"path": ["auth", "logout"]
						},
						"description": "Logout do usuário"
					},
					"response": []
				}
			]
		},
		{
			"name": "Tipos",
			"item": [
				{
					"name": "Listar Tipos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});",
									"pm.test('Retorna array de tipos', function() {",
									"    var jsonData = pm.response.json();",
									"    pm.expect(jsonData.data).to.be.an('array');",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/tipos",
							"host": ["{{baseUrl}}"],
							"path": ["tipos"]
						},
						"description": "Lista todos os tipos disponíveis para pontos turísticos e restaurantes"
					},
					"response": []
				}
			]
		},
		{
			"name": "Pontos Turísticos",
			"item": [
				{
					"name": "Listar Pontos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos"]
						},
						"description": "Lista pontos turísticos com filtros opcionais: tipo_id, cidade, status"
					},
					"response": []
				},
				{
					"name": "Listar Próximos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/proximos?lat=-12.9714&lng=-38.5082&raio=10",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "proximos"],
							"query": [
								{
									"key": "lat",
									"value": "-12.9714",
									"description": "Latitude"
								},
								{
									"key": "lng",
									"value": "-38.5082",
									"description": "Longitude"
								},
								{
									"key": "raio",
									"value": "10",
									"description": "Raio em KM (padrão 10, máx 50)"
								}
							]
						},
						"description": "Lista pontos turísticos próximos usando fórmula Haversine"
					},
					"response": []
				},
				{
					"name": "Detalhes do Ponto",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1"]
						},
						"description": "Obter detalhes completos de um ponto turístico"
					},
					"response": []
				},
				{
					"name": "Avaliações do Ponto",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1/avaliacoes",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1", "avaliacoes"]
						},
						"description": "Lista avaliações de um ponto turístico"
					},
					"response": []
				},
				{
					"name": "Como Chegar",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1/como-chegar?lat_origem=-13.0102&lng_origem=-38.5335",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1", "como-chegar"],
							"query": [
								{
									"key": "lat_origem",
									"value": "-13.0102",
									"description": "Latitude de origem"
								},
								{
									"key": "lng_origem",
									"value": "-38.5335",
									"description": "Longitude de origem"
								}
							]
						},
						"description": "Calcula distância e gera link do Google Maps"
					},
					"response": []
				},
				{
					"name": "Criar Ponto (Admin/Parceiro)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"nome\": \"Novo Ponto Turístico\",\n    \"descricao\": \"Descrição do ponto turístico\",\n    \"tipo_id\": 1,\n    \"endereco\": \"Rua Example, 100\",\n    \"cidade\": \"Salvador\",\n    \"estado\": \"BA\",\n    \"latitude\": -12.9714,\n    \"longitude\": -38.5082,\n    \"horario_funcionamento\": {\n        \"seg-sex\": \"09:00-18:00\",\n        \"sab\": \"09:00-14:00\"\n    },\n    \"status\": \"ativo\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos"]
						},
						"description": "Criar novo ponto turístico (requer autenticação de admin ou parceiro)"
					},
					"response": []
				},
				{
					"name": "Atualizar Ponto (Admin/Parceiro)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PUT",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"nome\": \"Ponto Turístico Atualizado\",\n    \"descricao\": \"Nova descrição\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1"]
						},
						"description": "Atualizar ponto turístico (requer autenticação de admin ou parceiro)"
					},
					"response": []
				},
				{
					"name": "Excluir Ponto (Admin)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1"]
						},
						"description": "Excluir ponto turístico (soft delete, requer autenticação de admin)"
					},
					"response": []
				},
				{
					"name": "Upload Imagem",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "imagem",
									"type": "file",
									"src": "",
									"description": "Arquivo de imagem (máx 5MB)"
								}
							]
						},
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1/imagens",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1", "imagens"]
						},
						"description": "Upload de imagem para o ponto turístico"
					},
					"response": []
				},
				{
					"name": "Remover Imagem",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "DELETE",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/pontos-turisticos/1/imagens/1",
							"host": ["{{baseUrl}}"],
							"path": ["pontos-turisticos", "1", "imagens", "1"]
						},
						"description": "Remover imagem do ponto turístico"
					},
					"response": []
				}
			]
		},
		{
			"name": "Restaurantes",
			"item": [
				{
					"name": "Listar Restaurantes",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/restaurantes",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes"]
						},
						"description": "Lista restaurantes com filtros opcionais"
					},
					"response": []
				},
				{
					"name": "Listar Próximos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/restaurantes/proximos?lat=-12.9714&lng=-38.5082&raio=5",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes", "proximos"],
							"query": [
								{
									"key": "lat",
									"value": "-12.9714"
								},
								{
									"key": "lng",
									"value": "-38.5082"
								},
								{
									"key": "raio",
									"value": "5"
								}
							]
						},
						"description": "Lista restaurantes próximos"
					},
					"response": []
				},
				{
					"name": "Detalhes do Restaurante",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/restaurantes/1",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes", "1"]
						},
						"description": "Obter detalhes de um restaurante"
					},
					"response": []
				},
				{
					"name": "Avaliações do Restaurante",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/restaurantes/1/avaliacoes",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes", "1", "avaliacoes"]
						},
						"description": "Lista avaliações de um restaurante"
					},
					"response": []
				},
				{
					"name": "Criar Restaurante (Admin/Parceiro)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"nome\": \"Novo Restaurante\",\n    \"descricao\": \"Descrição do restaurante\",\n    \"tipo_id\": 2,\n    \"endereco\": \"Rua Example, 100\",\n    \"cidade\": \"Salvador\",\n    \"estado\": \"BA\",\n    \"latitude\": -12.9714,\n    \"longitude\": -38.5082,\n    \"horario_funcionamento\": {\n        \"seg-dom\": \"11:00-23:00\"\n    },\n    \"status\": \"ativo\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/restaurantes",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes"]
						},
						"description": "Criar novo restaurante"
					},
					"response": []
				},
				{
					"name": "Upload Imagem Restaurante",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [],
						"body": {
							"mode": "formdata",
							"formdata": [
								{
									"key": "imagem",
									"type": "file",
									"src": "",
									"description": "Arquivo de imagem"
								}
							]
						},
						"url": {
							"raw": "{{baseUrl}}/restaurantes/1/imagens",
							"host": ["{{baseUrl}}"],
							"path": ["restaurantes", "1", "imagens"]
						},
						"description": "Upload de imagem para o restaurante"
					},
					"response": []
				}
			]
		},
		{
			"name": "Avaliações",
			"item": [
				{
					"name": "Criar Avaliação",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"tipo\": \"ponto\",\n    \"id\": 1,\n    \"nota\": 5,\n    \"comentario\": \"Excelente ponto turístico!\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/avaliacoes",
							"host": ["{{baseUrl}}"],
							"path": ["avaliacoes"]
						},
						"description": "Criar avaliação para ponto turístico ou restaurante (tipo: 'ponto' ou 'restaurante')"
					},
					"response": []
				}
			]
		},
		{
			"name": "Check-ins",
			"item": [
				{
					"name": "Fazer Check-in",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"tipo\": \"ponto\",\n    \"id\": 1,\n    \"nota\": 4,\n    \"comentario\": \"Muito bom!\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/checkins",
							"host": ["{{baseUrl}}"],
							"path": ["checkins"]
						},
						"description": "Fazer check-in em ponto turístico ou restaurante"
					},
					"response": []
				},
				{
					"name": "Meus Check-ins",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/checkins/meus",
							"host": ["{{baseUrl}}"],
							"path": ["checkins", "meus"]
						},
						"description": "Lista check-ins do usuário autenticado"
					},
					"response": []
				}
			]
		},
		{
			"name": "Ecopontos",
			"item": [
				{
					"name": "Listar Ecopontos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/ecopontos",
							"host": ["{{baseUrl}}"],
							"path": ["ecopontos"]
						},
						"description": "Lista ecopontos de coleta seletiva"
					},
					"response": []
				},
				{
					"name": "Ecopontos Próximos",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/ecopontos/proximos?lat=-12.9714&lng=-38.5082&raio=5",
							"host": ["{{baseUrl}}"],
							"path": ["ecopontos", "proximos"],
							"query": [
								{
									"key": "lat",
									"value": "-12.9714"
								},
								{
									"key": "lng",
									"value": "-38.5082"
								},
								{
									"key": "raio",
									"value": "5"
								}
							]
						},
						"description": "Lista ecopontos próximos"
					},
					"response": []
				},
				{
					"name": "Detalhes do Ecoponto",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/ecopontos/1",
							"host": ["{{baseUrl}}"],
							"path": ["ecopontos", "1"]
						},
						"description": "Obter detalhes de um ecoponto"
					},
					"response": []
				}
			]
		},
		{
			"name": "Doações",
			"item": [
				{
					"name": "Listar Doações (Admin)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/doacoes",
							"host": ["{{baseUrl}}"],
							"path": ["doacoes"]
						},
						"description": "Lista todas as doações (requer autenticação de admin)"
					},
					"response": []
				},
				{
					"name": "Minhas Doações",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/doacoes/minhas",
							"host": ["{{baseUrl}}"],
							"path": ["doacoes", "minhas"]
						},
						"description": "Lista doações do usuário autenticado"
					},
					"response": []
				},
				{
					"name": "Registrar Doação",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 201 Created', function() {",
									"    pm.response.to.have.status(201);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "POST",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							},
							{
								"key": "Content-Type",
								"value": "application/json"
							}
						],
						"body": {
							"mode": "raw",
							"raw": "{\n    \"tipo_material\": \"roupas\",\n    \"quantidade\": \"10kg\",\n    \"descricao\": \"Sacolas de roupas em bom estado\"\n}",
							"options": {
								"raw": {
									"language": "json"
								}
							}
						},
						"url": {
							"raw": "{{baseUrl}}/doacoes",
							"host": ["{{baseUrl}}"],
							"path": ["doacoes"]
						},
						"description": "Registrar nova doação"
					},
					"response": []
				},
				{
					"name": "Confirmar Doação (Admin)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PATCH",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/doacoes/1/confirmar",
							"host": ["{{baseUrl}}"],
							"path": ["doacoes", "1", "confirmar"]
						},
						"description": "Confirmar uma doação (requer autenticação de admin)"
					},
					"response": []
				},
				{
					"name": "Cancelar Doação (Admin)",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "PATCH",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/doacoes/1/cancelar",
							"host": ["{{baseUrl}}"],
							"path": ["doacoes", "1", "cancelar"]
						},
						"description": "Cancelar uma doação (requer autenticação de admin)"
					},
					"response": []
				}
			]
		},
		{
			"name": "Roteiro",
			"item": [
				{
					"name": "Meu Roteiro",
					"event": [
						{
							"listen": "test",
							"script": {
								"exec": [
									"pm.test('Status 200 OK', function() {",
									"    pm.response.to.have.status(200);",
									"});"
								],
								"type": "text/javascript"
							}
						}
					],
					"request": {
						"auth": {
							"type": "bearer",
							"bearer": [
								{
									"key": "token",
									"value": "{{token}}",
									"type": "string"
								}
							]
						},
						"method": "GET",
						"header": [
							{
								"key": "Accept",
								"value": "application/json"
							}
						],
						"url": {
							"raw": "{{baseUrl}}/meu-roteiro",
							"host": ["{{baseUrl}}"],
							"path": ["meu-roteiro"]
						},
						"description": "Lista o roteiro de viagem do usuário autenticado"
					},
					"response": []
				}
			]
		}
	]
}
