{
  "info": {
    "_postman_id": "b8f3c9a2-1234-4567-8901-123456789abc",
    "name": "Price Comparison API - Chile Pharmacies",
    "description": "API completa para comparación de precios de medicamentos en farmacias chilenas. Incluye ambientes LOCAL y PRODUCCIÓN.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "LOCAL - localhost:4300",
      "item": [
        {
          "name": "1. Búsqueda por EAN/Código de Barras",
          "item": [
            {
              "name": "Buscar por EAN",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/ean/7501234567890",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "ean",
                    "7501234567890"
                  ]
                },
                "description": "Busca productos por su código EAN/UPC y compara precios en todas las farmacias."
              },
              "response": []
            }
          ]
        },
        {
          "name": "2. Búsqueda por Descripción/Similitud",
          "item": [
            {
              "name": "Buscar por descripción",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/search?q=paracetamol&sortBy=price_low&limit=10",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "search"
                  ],
                  "query": [
                    {
                      "key": "q",
                      "value": "paracetamol"
                    },
                    {
                      "key": "sortBy",
                      "value": "price_low"
                    },
                    {
                      "key": "limit",
                      "value": "10"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Buscar con filtros avanzados",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/search?q=ibuprofeno&pharmacies=cruz_verde,salcobrand&available=true&hasDiscount=true",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "search"
                  ],
                  "query": [
                    {
                      "key": "q",
                      "value": "ibuprofeno"
                    },
                    {
                      "key": "pharmacies",
                      "value": "cruz_verde,salcobrand"
                    },
                    {
                      "key": "available",
                      "value": "true"
                    },
                    {
                      "key": "hasDiscount",
                      "value": "true"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "3. Historial de Precios",
          "item": [
            {
              "name": "Obtener historial de precios",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/history/29040?interval=daily",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "history",
                    "29040"
                  ],
                  "query": [
                    {
                      "key": "interval",
                      "value": "daily"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "4. Productos en Tendencia",
          "item": [
            {
              "name": "Obtener productos con cambios de precio",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/trending?type=price_drop&limit=10",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "trending"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "price_drop"
                    },
                    {
                      "key": "limit",
                      "value": "10"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "5. Alertas de Precios",
          "item": [
            {
              "name": "Obtener alertas de precio",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/alerts?type=price_drop&threshold=15",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "alerts"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "price_drop"
                    },
                    {
                      "key": "threshold",
                      "value": "15"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "6. Búsqueda de Opciones Más Económicas",
          "item": [
            {
              "name": "Encontrar productos más baratos",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_local}}/api/compare/cheapest?category=Analgésicos&available=true&limit=5",
                  "host": [
                    "{{baseUrl_local}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "cheapest"
                  ],
                  "query": [
                    {
                      "key": "category",
                      "value": "Analgésicos"
                    },
                    {
                      "key": "available",
                      "value": "true"
                    },
                    {
                      "key": "limit",
                      "value": "5"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        }
      ],
      "description": "Endpoints para ambiente LOCAL (localhost:4300)"
    },
    {
      "name": "PROD - app.simed.life",
      "item": [
        {
          "name": "1. Búsqueda por EAN/Código de Barras",
          "item": [
            {
              "name": "Buscar por EAN",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/ean/7501234567890",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "ean",
                    "7501234567890"
                  ]
                },
                "description": "Busca productos por su código EAN/UPC y compara precios en todas las farmacias."
              },
              "response": []
            }
          ]
        },
        {
          "name": "2. Búsqueda por Descripción/Similitud",
          "item": [
            {
              "name": "Buscar por descripción",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/search?q=paracetamol&sortBy=price_low&limit=10",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "search"
                  ],
                  "query": [
                    {
                      "key": "q",
                      "value": "paracetamol"
                    },
                    {
                      "key": "sortBy",
                      "value": "price_low"
                    },
                    {
                      "key": "limit",
                      "value": "10"
                    }
                  ]
                }
              },
              "response": []
            },
            {
              "name": "Buscar con filtros avanzados",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/search?q=ibuprofeno&pharmacies=cruz_verde,salcobrand&available=true&hasDiscount=true",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "search"
                  ],
                  "query": [
                    {
                      "key": "q",
                      "value": "ibuprofeno"
                    },
                    {
                      "key": "pharmacies",
                      "value": "cruz_verde,salcobrand"
                    },
                    {
                      "key": "available",
                      "value": "true"
                    },
                    {
                      "key": "hasDiscount",
                      "value": "true"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "3. Historial de Precios",
          "item": [
            {
              "name": "Obtener historial de precios",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/history/29040?interval=daily",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "history",
                    "29040"
                  ],
                  "query": [
                    {
                      "key": "interval",
                      "value": "daily"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "4. Productos en Tendencia",
          "item": [
            {
              "name": "Obtener productos con cambios de precio",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/trending?type=price_drop&limit=10",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "trending"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "price_drop"
                    },
                    {
                      "key": "limit",
                      "value": "10"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "5. Alertas de Precios",
          "item": [
            {
              "name": "Obtener alertas de precio",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/alerts?type=price_drop&threshold=15",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "alerts"
                  ],
                  "query": [
                    {
                      "key": "type",
                      "value": "price_drop"
                    },
                    {
                      "key": "threshold",
                      "value": "15"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        },
        {
          "name": "6. Búsqueda de Opciones Más Económicas",
          "item": [
            {
              "name": "Encontrar productos más baratos",
              "request": {
                "method": "GET",
                "header": [
                  {
                    "key": "Accept",
                    "value": "application/json",
                    "type": "text"
                  }
                ],
                "url": {
                  "raw": "{{baseUrl_prod}}/api/compare/cheapest?category=Analgésicos&available=true&limit=5",
                  "host": [
                    "{{baseUrl_prod}}"
                  ],
                  "path": [
                    "api",
                    "compare",
                    "cheapest"
                  ],
                  "query": [
                    {
                      "key": "category",
                      "value": "Analgésicos"
                    },
                    {
                      "key": "available",
                      "value": "true"
                    },
                    {
                      "key": "limit",
                      "value": "5"
                    }
                  ]
                }
              },
              "response": []
            }
          ]
        }
      ],
      "description": "Endpoints para ambiente PRODUCCIÓN (app.simed.life)"
    }
  ],
  "event": [
    {
      "listen": "prerequest",
      "script": {
        "type": "text/javascript",
        "exec": [
          ""
        ]
      }
    },
    {
      "listen": "test",
      "script": {
        "type": "text/javascript",
        "exec": [
          "// Verificar respuesta exitosa",
          "pm.test(\"Status code is 200 or 201\", function () {",
          "    pm.expect(pm.response.code).to.be.oneOf([200, 201]);",
          "});",
          "",
          "// Verificar formato JSON",
          "pm.test(\"Response is JSON\", function () {",
          "    pm.response.to.be.json;",
          "});",
          "",
          "// Verificar estructura básica",
          "pm.test(\"Response has required fields\", function () {",
          "    const jsonData = pm.response.json();",
          "    pm.expect(jsonData).to.have.property('success');",
          "    pm.expect(jsonData).to.have.property('timestamp');",
          "});",
          "",
          "// Si es exitoso, verificar data",
          "if (pm.response.code === 200) {",
          "    pm.test(\"Success response has data\", function () {",
          "        const jsonData = pm.response.json();",
          "        if (jsonData.success) {",
          "            pm.expect(jsonData).to.have.property('data');",
          "        }",
          "    });",
          "}"
        ]
      }
    }
  ],
  "variable": [
    {
      "key": "baseUrl_local",
      "value": "http://localhost:4300",
      "type": "string",
      "description": "URL base del servidor LOCAL"
    },
    {
      "key": "baseUrl_prod",
      "value": "https://app.simed.life",
      "type": "string",
      "description": "URL base del servidor PRODUCCIÓN"
    }
  ]
}