{
  "openapi": "3.0.3",
  "info": {
    "title": "Repuestia API",
    "description": "API pública de Repuestia para búsqueda de repuestos automotrices, decodificación de patentes y VIN en Chile.",
    "version": "1.0.0",
    "contact": {
      "name": "Repuestia",
      "url": "https://www.repuestia.cl",
      "email": "contacto@repuestia.cl"
    }
  },
  "servers": [
    { "url": "https://www.repuestia.cl", "description": "Producción" }
  ],
  "paths": {
    "/api/health": {
      "get": {
        "operationId": "healthCheck",
        "summary": "Health check",
        "description": "Verifica que la API esté operativa.",
        "responses": {
          "200": {
            "description": "API operativa",
            "content": { "application/json": { "schema": { "type": "object", "properties": { "status": { "type": "string", "example": "ok" } } } } }
          }
        }
      }
    },
    "/api/search": {
      "get": {
        "operationId": "searchParts",
        "summary": "Buscar repuestos",
        "description": "Busca repuestos automotrices por nombre, marca, modelo o categoría. Retorna lista de productos disponibles en desarmadurías chilenas.",
        "parameters": [
          { "name": "q", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Término de búsqueda (nombre de pieza)", "example": "frenos toyota hilux" },
          { "name": "marca", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Marca del vehículo", "example": "toyota" },
          { "name": "modelo", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Modelo del vehículo", "example": "hilux" },
          { "name": "categoria", "in": "query", "required": false, "schema": { "type": "string" }, "description": "Categoría del repuesto", "example": "frenos" }
        ],
        "responses": {
          "200": {
            "description": "Resultados de búsqueda",
            "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/Part" } } } }
          }
        }
      }
    },
    "/api/vehicle/decode/plate/{plate}": {
      "get": {
        "operationId": "decodePlate",
        "summary": "Decodificar patente chilena",
        "description": "Decodifica una patente chilena y retorna información del vehículo registrado.",
        "parameters": [
          { "name": "plate", "in": "path", "required": true, "schema": { "type": "string" }, "description": "Patente chilena (ej: AB1234, HKJN56)", "example": "HKJN56" }
        ],
        "responses": {
          "200": {
            "description": "Información del vehículo",
            "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VehicleInfo" } } }
          },
          "404": { "description": "Patente no encontrada" }
        }
      }
    },
    "/api/vehicle/decode/vin/{vin}": {
      "get": {
        "operationId": "decodeVin",
        "summary": "Decodificar VIN",
        "description": "Decodifica un número VIN de 17 caracteres y retorna detalles del vehículo.",
        "parameters": [
          { "name": "vin", "in": "path", "required": true, "schema": { "type": "string", "minLength": 17, "maxLength": 17 }, "description": "Número VIN de 17 caracteres", "example": "1HGBH41JXMN109186" }
        ],
        "responses": {
          "200": {
            "description": "Detalles del vehículo",
            "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VehicleInfo" } } }
          },
          "404": { "description": "VIN no encontrado" }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "Part": {
        "type": "object",
        "properties": {
          "id": { "type": "string" },
          "pieza_nombre": { "type": "string", "description": "Nombre del repuesto" },
          "marca": { "type": "string", "description": "Marca del vehículo" },
          "modelo": { "type": "string", "description": "Modelo del vehículo" },
          "anio_inicio": { "type": "integer", "description": "Año inicio compatible" },
          "anio_fin": { "type": "integer", "description": "Año fin compatible" },
          "precio_final": { "type": "number", "description": "Precio en CLP" },
          "estado": { "type": "string", "enum": ["publicado", "disponible", "vendido"] },
          "descripcion_estado": { "type": "string" },
          "imagenes": { "type": "array", "items": { "type": "string" } },
          "locales": { "$ref": "#/components/schemas/Seller" }
        }
      },
      "Seller": {
        "type": "object",
        "properties": {
          "nombre": { "type": "string", "description": "Nombre de la desarmaduría" },
          "comuna": { "type": "string" },
          "region": { "type": "string" }
        }
      },
      "VehicleInfo": {
        "type": "object",
        "properties": {
          "marca": { "type": "string" },
          "modelo": { "type": "string" },
          "anio": { "type": "integer" },
          "motor": { "type": "string" },
          "combustible": { "type": "string" },
          "tipo": { "type": "string" }
        }
      }
    }
  }
}
