{
  "openapi": "3.1.0",
  "info": {
    "title": "Intelix Ingeniería — API pública",
    "description": "API pública de solo lectura del sitio de Intelix Ingeniería & Telecomunicaciones. Actualmente expone el catálogo de productos y servicios de la tienda (sin precios: la tienda funciona a consulta por WhatsApp).\n\n**Versionado**: la API usa versionado por path (`/api/v1/...`). La versión activa se confirma en la respuesta con el header `X-API-Version`. `/api/productos.php` (sin versión en el path) es un alias que siempre resuelve a la última versión estable y devuelve `X-Api-Alias-Of` apuntando al endpoint versionado real — para integraciones estables, usá siempre el path con versión.\n\n**Deprecación**: cuando una versión quede obsoleta, sus respuestas incluirán los headers `Deprecation: true` y `Sunset: <fecha HTTP>` durante un período de aviso mínimo de 90 días antes de removerla. Hoy no hay versiones deprecadas. Ver detalle y ejemplos en /developers.html.",
    "version": "1.0.0",
    "contact": {
      "name": "Intelix Ingeniería & Telecomunicaciones",
      "email": "contacto@intelix.com.ar",
      "url": "https://intelix.com.ar"
    }
  },
  "servers": [
    { "url": "https://intelix.com.ar", "description": "Producción" }
  ],
  "paths": {
    "/api/v1/productos.php": {
      "get": {
        "operationId": "listarProductosV1",
        "summary": "Listar catálogo público de productos activos (v1)",
        "description": "Devuelve los productos y servicios activos de la tienda, sin precios ni datos de stock. Endpoint versionado — estable mientras la respuesta incluya `X-API-Version: 1` sin headers `Deprecation`/`Sunset`.",
        "responses": {
          "200": {
            "description": "Catálogo de productos activos",
            "headers": {
              "X-API-Version": {
                "description": "Versión de la API que respondió.",
                "schema": { "type": "string", "example": "1" }
              }
            },
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/CatalogoResponse" }
              }
            }
          },
          "500": {
            "description": "Error interno al leer el catálogo",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    },
    "/api/productos.php": {
      "get": {
        "operationId": "listarProductos",
        "summary": "Listar catálogo público de productos activos (alias, última versión)",
        "description": "Alias sin versión en el path: siempre reenvía a la última versión estable (hoy /api/v1/productos.php) y devuelve el header `X-Api-Alias-Of` con el endpoint versionado real. Para integraciones que dependen de un contrato estable, preferí llamar directamente a /api/v1/productos.php.",
        "deprecated": false,
        "responses": {
          "200": {
            "description": "Catálogo de productos activos",
            "headers": {
              "X-API-Version": {
                "description": "Versión de la API que respondió.",
                "schema": { "type": "string", "example": "1" }
              },
              "X-Api-Alias-Of": {
                "description": "Endpoint versionado al que resuelve este alias.",
                "schema": { "type": "string", "example": "/api/v1/productos.php" }
              }
            },
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/CatalogoResponse" }
              }
            }
          },
          "500": {
            "description": "Error interno al leer el catálogo",
            "content": {
              "application/json": {
                "schema": { "$ref": "#/components/schemas/ErrorResponse" }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Producto": {
        "type": "object",
        "properties": {
          "sku": { "type": "string", "example": "macbook-air-m1" },
          "nombre": { "type": "string", "example": "Apple MacBook Air M1 8GB 512GB" },
          "descripcion": { "type": "string" },
          "imagenes": {
            "type": "array",
            "items": { "type": "string", "format": "uri-reference" }
          }
        },
        "required": ["sku", "nombre", "descripcion", "imagenes"]
      },
      "CatalogoResponse": {
        "type": "object",
        "properties": {
          "productos": {
            "type": "array",
            "items": { "$ref": "#/components/schemas/Producto" }
          }
        },
        "required": ["productos"]
      },
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error": {
            "type": "object",
            "properties": {
              "code": { "type": "integer", "example": 404 },
              "status": { "type": "string", "example": "not_found" },
              "message": { "type": "string" },
              "hint": { "type": "string" }
            },
            "required": ["code", "status", "message"]
          }
        },
        "required": ["error"]
      }
    }
  }
}
