changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
+ "additionalProperties": false,
+ "properties": {
+ "contacto": {
+ "additionalProperties": false,
+ "properties": {
+ "email": {
+ "type": "string"
+ },
+ "url": {
+ "description": "Formulario de contacto: el sitio para pedir un presupuesto",
+ "type": "string"
+ }
+ },
+ "required": [
+ "email",
+ "url"
+ ],
+ "type": "object"
+ },
+ "planes": {
+ "description": "Planes mensuales de la agencia",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "a_medida": {
+ "description": "true si no tiene precio publicado: se presupuesta por contacto",
+ "type": "boolean"
+ },
+ "descripcion": {
+ "type": "string"
+ },
+ "id": {
+ "type": "string"
+ },
+ "incluye": {
+ "description": "Lo que cubre el plan, tal como lo publica la web",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "nombre": {
+ "type": "string"
+ },
+ "permanencia_meses": {
+ "description": "Permanencia mínima en meses; null si no tiene",
+ "type": [
+ "number",
+ "null"
+ ]
+ },
+ "precios": {
+ "description": "Una entrada por tarifa (solo la del país pedido si se pasó `pais`); vacío si es a medida",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "importe": {
+ "description": "Importe mensual tal como se publica, con símbolo: «690 €», «S/ 1.290»",
+ "type": "string"
+ },
+ "impuesto_no_incluido": {
+ "description": "Impuesto que hay que sumar al importe (IVA, IGV)",
+ "type": "string"
+ },
+ "moneda": {
+ "description": "Código ISO 4217",
+ "type": "string"
+ },
+ "pais": {
+ "description": "País o región al que aplica la tarifa. Uno de: España, Unión Europea y resto del mundo; Argentina; Colombia; Perú; Uruguay",
+ "type": "string"
+ },
+ "valor": {
+ "description": "El mismo importe como número, para calcular",
+ "type": "number"
+ }
+ },
+ "required": [
+ "pais",
+ "moneda",
+ "importe",
+ "valor",
+ "impuesto_no_incluido"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "id",
+ "nombre",
+ "descripcion",
+ "a_medida",
+ "incluye",
+ "permanencia_meses",
+ "precios"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "servicio": {
+ "additionalProperties": false,
+ "description": "Solo si se pasó `servicio`: el detalle de ese servicio",
+ "properties": {
+ "descripcion": {
+ "type": "string"
+ },
+ "entregables": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "modalidad": {
+ "description": "retainer = servicio continuo con cuota mensual; proyecto = encargo cerrado; diagnóstico = encargo puntual sin permanencia. Solo los planes tienen precio publicado",
+ "enum": [
+ "retainer",
+ "proyecto",
+ "diagnóstico"
+ ],
+ "type": "string"
+ },
+ "nombre": {
+ "type": "string"
+ },
+ "para_quien_no_es": {
+ "description": "Casos en los que la agencia desaconseja contratarlo",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "slug": {
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "slug",
+ "nombre",
+ "modalidad",
+ "descripcion",
+ "entregables",
+ "para_quien_no_es",
+ "url"
+ ],
+ "type": "object"
+ },
+ "servicios": {
+ "description": "Todos los servicios, con su modalidad de contratación",
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "modalidad": {
+ "description": "retainer = servicio continuo con cuota mensual; proyecto = encargo cerrado; diagnóstico = encargo puntual sin permanencia. Solo los planes tienen precio publicado",
+ "enum": [
+ "retainer",
+ "proyecto",
+ "diagnóstico"
+ ],
+ "type": "string"
+ },
+ "nombre": {
+ "type": "string"
+ },
+ "slug": {
+ "description": "Valor que se puede pasar en `servicio` para ver el detalle",
+ "type": "string"
+ },
+ "url": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "slug",
+ "nombre",
+ "modalidad",
+ "url"
+ ],
+ "type": "object"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "planes",
+ "servicios",
+ "contacto"
+ ],
+ "type": "object"
+}