{"id":2652,"date":"2025-04-02T09:50:57","date_gmt":"2025-04-02T08:50:57","guid":{"rendered":"https:\/\/zabalimp.es\/?page_id=2652"},"modified":"2025-04-02T09:51:24","modified_gmt":"2025-04-02T08:51:24","slug":"mantenimiento-general-2","status":"publish","type":"page","link":"https:\/\/zabalimp.es\/eu\/mantenimiento-general-2\/","title":{"rendered":"Mantenimiento general"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"2652\" class=\"elementor elementor-2652\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3e3b165b e-flex e-con-boxed e-con e-parent\" data-id=\"3e3b165b\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-7e32b90b e-con-full e-flex e-con e-child\" data-id=\"7e32b90b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-199b1deb elementor-invisible elementor-widget elementor-widget-image\" data-id=\"199b1deb\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInLeft&quot;}\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"800\" height=\"800\" src=\"https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general.png\" class=\"attachment-large size-large wp-image-1837\" alt=\"\" srcset=\"https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general.png 1024w, https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general-300x300.png 300w, https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general-100x100.png 100w, https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general-600x600.png 600w, https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general-150x150.png 150w, https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/Mantenimiento-general-768x768.png 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5513138 e-con-full e-flex e-con e-child\" data-id=\"5513138\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-668c6bd e-con-full e-flex e-con e-child\" data-id=\"668c6bd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4ab6d023 elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"4ab6d023\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeIn&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<span class=\"elementor-heading-title elementor-size-default\">El buen estado de un edificio no depende solo de su construcci\u00f3n, sino del cuidado continuo que se le brinda. Nuestro servicio de mantenimiento general est\u00e1 pensado para garantizar la seguridad, funcionalidad y est\u00e9tica de comunidades, oficinas y locales.\n\nOfrecemos intervenciones preventivas y correctivas en instalaciones el\u00e9ctricas, fontaner\u00eda, iluminaci\u00f3n, peque\u00f1as reparaciones, sustituciones, revisi\u00f3n de zonas t\u00e9cnicas y m\u00e1s. Todo ello con la rapidez, profesionalidad y cercan\u00eda que esperas.\n\n\ud83d\udee0\ufe0f T\u00e9cnicos polivalentes, \ud83d\udcc5 visitas programadas o urgentes, \u2705 control de incidencias, \ud83e\udd1d atenci\u00f3n personalizada.\nNos adaptamos a las necesidades de cada espacio, proponiendo soluciones eficaces y sostenibles.\n\nPorque un mantenimiento adecuado no solo evita problemas: protege tu inversi\u00f3n y tu tranquilidad.<\/span>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f5e8c83 e-con-full e-flex e-con e-child\" data-id=\"f5e8c83\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6b0fe3ad elementor-widget elementor-widget-html\" data-id=\"6b0fe3ad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\n  const subservicioId = 25;\r\n<\/script>\r\n\r\n<div id=\"form-field-dinamico\"><\/div>\r\n\r\n<div id=\"resumen-seleccionado\" style=\"min-height: 40px; margin-bottom: 60px;\"><\/div>\r\n<div id=\"pedir-fixed-wrapper\">\r\n  <div id=\"option_price\">\ud83d\udfe9 Total: 0.00 \u20ac<\/div>\r\n  <button id=\"btn-pedir\" class=\"elementor-button\">\ud83d\uded2 Pedir<\/button>\r\n<\/div>\r\n\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-15427932 elementor-widget elementor-widget-html\" data-id=\"15427932\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<script>\r\nlet selected = {};\r\n\r\ndocument.addEventListener(\"DOMContentLoaded\", function () {\r\n  fetch(`\/wp-json\/miapi\/v1\/subservicio?id=${subservicioId}`)\r\n    .then(res => res.json())\r\n    .then(data => {\r\n      selected = {\r\n        servicio: { id: data.service_id, name: data.service_name },\r\n        subservicio: { id: data.id, name: data.name }\r\n      };\r\n      cargarParametros(data.id);\r\n    });\r\n\r\n  document.getElementById(\"btn-pedir\").addEventListener(\"click\", () => {\r\n    const resumen = document.getElementById(\"resumen-seleccionado\");\r\n    const precioField = document.getElementById(\"option_price\");\r\n\r\n    const descripcion = resumen.innerText;\r\n    const precioTexto = precioField.textContent.match(\/([\\d\\.]+) \u20ac$\/);\r\n    const precio = precioTexto ? parseFloat(precioTexto[1]) : 0;\r\n    const imagen = `https:\/\/zabalimp.es\/wp-content\/uploads\/2025\/03\/${normalizeFileName(selected.subservicio.name)}.png`;\r\n\r\n    const datosPedido = {\r\n      nombre: `${selected.servicio.name} \u2013 ${selected.subservicio.name}`,\r\n      descripcion: descripcion,\r\n      precio: precio,\r\n      imagen: imagen\r\n    };\r\n\r\n    fetch('\/wp-json\/miapi\/v1\/add-to-cart', {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application\/json' },\r\n      body: JSON.stringify(datosPedido)\r\n    })\r\n      .then(res => res.json())\r\n      .then(data => {\r\n        if (data.success) {\r\n          alert(\"\u2705 Producto a\u00f1adido al carrito\");\r\n          window.location.href = \"\/carrito\";\r\n        } else {\r\n          alert(\"\u274c No se pudo a\u00f1adir al carrito\");\r\n        }\r\n      })\r\n      .catch(err => {\r\n        console.error(\"Error:\", err);\r\n        alert(\"\u274c Error en el servidor\");\r\n      });\r\n  });\r\n});\r\n\r\nfunction normalizeFileName(name) {\r\n  const map = { '\u00e1':'a','\u00e9':'e','\u00ed':'i','\u00f3':'o','\u00fa':'u','\u00fc':'u','\u00f1':'n','\u00c1':'A','\u00c9':'E','\u00cd':'I','\u00d3':'O','\u00da':'U','\u00dc':'U','\u00d1':'N' };\r\n  return name.split('').map(c => map[c] || c).join('').replace(\/\\s+\/g, '-').replace(\/[^\\w\\-]\/g, '');\r\n}\r\n\r\n\r\nfunction cargarParametros(id) {\r\n  fetch(`\/wp-json\/miapi\/v1\/parametros?subservicio=${id}`)\r\n    .then(res => res.json())\r\n    .then(async parametros => {\r\n      const dinamico = document.getElementById(\"form-field-dinamico\");\r\n      dinamico.innerHTML = \"\";\r\n\r\n      for (const param of parametros) {\r\n        const priceData = await fetch(`\/wp-json\/miapi\/v1\/option-price?id=${param.id}`).then(r => r.json());\r\n        const base = parseFloat(priceData?.base_price || 0);\r\n        const pricePerUnit = parseFloat(priceData?.price_per_unit || 0);\r\n        const unit = priceData?.unit || \"servicio\";\r\n        const modifiers = priceData?.value_modifier || \"\";\r\n\r\n        const modArray = modifiers\r\n          .split(\";\")\r\n          .map(s => s.trim().split(\":\"))\r\n            .filter(([key, val]) =>\r\n                key && val !== undefined &&\r\n                !isNaN(parseFloat(val)) &&\r\n                !(key.toLowerCase() === \"no\" && parseFloat(val) === 0)\r\n              )\r\n          .filter(([key, val]) => key && val !== undefined && !isNaN(parseFloat(val)));\r\n\r\n        \/\/ \u0411\u043b\u043e\u043a \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\r\n        const group = document.createElement(\"div\");\r\n        group.className = \"parametro-group\";\r\n        group.style.display = \"flex\";\r\n        group.style.flexWrap = \"wrap\";\r\n        group.style.alignItems = \"center\";\r\n        group.style.marginBottom = \"10px\";\r\n        group.style.gap = \"8px\";\r\n\r\n        \/\/ \u0427\u0435\u043a\u0431\u043e\u043a\u0441 + \u0438\u043c\u044f\r\n        const baseCheckbox = document.createElement(\"input\");\r\n        baseCheckbox.type = \"checkbox\";\r\n        baseCheckbox.dataset.baseValue = base;\r\n        baseCheckbox.dataset.paramName = param.name;\r\n        baseCheckbox.addEventListener(\"change\", updatePrecio);\r\n\r\n        const nameSpan = document.createElement(\"span\");\r\n        nameSpan.textContent = ` ${param.name}`;\r\n        nameSpan.style.fontWeight = \"500\";\r\n\r\n        group.appendChild(baseCheckbox);\r\n        group.appendChild(nameSpan);\r\n\r\n        \/\/ \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b\r\n        if (modArray.length > 0) {\r\n          const dash = document.createElement(\"span\");\r\n          dash.textContent = \"\u2014\";\r\n          group.appendChild(dash);\r\n\r\n          if (modArray.length > 2) {\r\n            const select = document.createElement(\"select\");\r\n            select.dataset.modType = \"select\";\r\n            select.dataset.paramId = param.id;\r\n            select.style.display = \"inline-block\";\r\n            select.style.maxWidth = \"200px\";\r\n            select.style.padding = \"4px\";\r\n            select.style.verticalAlign = \"middle\";\r\n                    select.addEventListener(\"change\", (e) => {\r\n          if (e.target.value) {\r\n            baseCheckbox.checked = true;\r\n          }\r\n          updatePrecio();\r\n        });\r\n\r\n\r\n            const optDefault = document.createElement(\"option\");\r\n            optDefault.value = \"\";\r\n            optDefault.textContent = \"-- Selecciona --\";\r\n            select.appendChild(optDefault);\r\n\r\n            modArray.forEach(([labelText, modValue]) => {\r\n              const opt = document.createElement(\"option\");\r\n              opt.value = modValue;\r\n              opt.text = `${labelText} (+${parseFloat(modValue).toFixed(2)} \u20ac)`;\r\n              select.appendChild(opt);\r\n            });\r\n\r\n            group.appendChild(select);\r\n          } else {\r\n            modArray.forEach(([labelText, modValue]) => {\r\n              const modLabel = document.createElement(\"label\");\r\n              modLabel.style.whiteSpace = \"nowrap\";\r\n\r\n              const modCheckbox = document.createElement(\"input\");\r\n              modCheckbox.type = \"checkbox\";\r\n              modCheckbox.dataset.modifierValue = parseFloat(modValue);\r\n              modCheckbox.dataset.paramId = param.id;\r\n              modCheckbox.addEventListener(\"change\", (e) => {\r\n                  baseCheckbox.checked = true;\r\n                  updatePrecio();\r\n                });\r\n\r\n\r\n              modLabel.appendChild(modCheckbox);\r\n              modLabel.append(` ${labelText} (+${parseFloat(modValue).toFixed(2)} \u20ac)`);\r\n              group.appendChild(modLabel);\r\n            });\r\n          }\r\n        }\r\n\r\n        \/\/ \u0415\u0441\u043b\u0438 \u043d\u0443\u0436\u0435\u043d \u0432\u0432\u043e\u0434 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430\r\n        if (!modifiers && pricePerUnit > 0) {\r\n          const dash = document.createElement(\"span\");\r\n          dash.textContent = \"\u2014\";\r\n          group.appendChild(dash);\r\n\r\n          const inputNum = document.createElement(\"input\");\r\n          inputNum.type = \"number\";\r\n          inputNum.min = \"0\";\r\n          inputNum.step = \"1\";\r\n          inputNum.placeholder = `Cantidad en ${unit}`;\r\n          inputNum.dataset.unit = unit;\r\n          inputNum.dataset.price = pricePerUnit;\r\n          inputNum.style.width = \"80px\";\r\n          inputNum.style.padding = \"4px\";\r\n          inputNum.style.verticalAlign = \"middle\";\r\ninputNum.addEventListener(\"input\", () => {\r\n  if (inputNum.value && parseFloat(inputNum.value) > 0) {\r\n    baseCheckbox.checked = true;\r\n  }\r\n  updatePrecio();\r\n});\r\ninputNum.addEventListener(\"change\", () => {\r\n  if (inputNum.value && parseFloat(inputNum.value) > 0) {\r\n    baseCheckbox.checked = true;\r\n  }\r\n  updatePrecio();\r\n});\r\n\r\n\r\n          group.appendChild(inputNum);\r\n        }\r\n\r\n        \/\/ \u041f\u043e\u0434\u0441\u043a\u0430\u0437\u043a\u0430 \u043f\u043e\u0434 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u043c\r\n        const info = [];\r\n        if (base > 0) info.push(`base: ${base.toFixed(2)} \u20ac`);\r\n        if (pricePerUnit > 0) info.push(`precio por ${unit}: ${pricePerUnit.toFixed(2)} \u20ac`);\r\n\r\n        if (info.length > 0) {\r\n          const hint = document.createElement(\"div\");\r\n          hint.style.fontSize = \"0.85em\";\r\n          hint.style.color = \"#888\";\r\n          hint.style.marginLeft = \"24px\";\r\n          hint.style.width = \"100%\";\r\n          hint.textContent = `(${info.join(\" | \")})`;\r\n          group.appendChild(hint);\r\n        }\r\n\r\n        dinamico.appendChild(group);\r\n      }\r\n\r\n      updatePrecio();\r\n    });\r\n}\r\n\r\nfunction updatePrecio() {\r\n  const resumen = document.getElementById(\"resumen-seleccionado\");\r\n  const precioField = document.getElementById(\"option_price\");\r\n\r\n  let total = 0;\r\n  let partes = [];\r\n  let detalles = [];\r\n\r\n  document.querySelectorAll(\"#form-field-dinamico .parametro-group\").forEach(group => {\r\n    const baseCheckbox = group.querySelector(\"input[type='checkbox'][data-base-value]\");\r\n    if (!baseCheckbox || !baseCheckbox.checked) return;\r\n\r\n    const nombre = baseCheckbox.dataset.paramName || \"Par\u00e1metro\";\r\n    const base = parseFloat(baseCheckbox.dataset.baseValue || 0);\r\n\r\n    if (base > 0) {\r\n      total += base;\r\n      partes.push(base.toFixed(2));\r\n      detalles.push(`${nombre}: base ${base.toFixed(2)} \u20ac`);\r\n    }\r\n\r\n    \/\/ \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b: select\r\n    const select = group.querySelector(\"select[data-mod-type='select']\");\r\n    if (select && select.value) {\r\n      const mod = parseFloat(select.value);\r\n      total += mod;\r\n      partes.push(mod.toFixed(2));\r\n      detalles.push(`${nombre}: extra +${mod.toFixed(2)} \u20ac`);\r\n    }\r\n\r\n    \/\/ \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0442\u043e\u0440\u044b: \u0447\u0435\u043a\u0431\u043e\u043a\u0441\u044b\r\n    const modCheckboxes = group.querySelectorAll(\"input[type='checkbox'][data-modifier-value]\");\r\n    modCheckboxes.forEach(cb => {\r\n      if (cb.checked) {\r\n        const mod = parseFloat(cb.dataset.modifierValue || 0);\r\n        total += mod;\r\n        partes.push(mod.toFixed(2));\r\n        detalles.push(`${nombre}: extra +${mod.toFixed(2)} \u20ac`);\r\n      }\r\n    });\r\n\r\n    \/\/ \u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u00d7 \u0446\u0435\u043d\u0430\r\n    const numInput = group.querySelector(\"input[type='number']\");\r\n    if (numInput && parseFloat(numInput.value) > 0) {\r\n      const cantidad = parseFloat(numInput.value || 0);\r\n      const precioUnitario = parseFloat(numInput.dataset.price || 0);\r\n      const subtotal = cantidad * precioUnitario;\r\n      total += subtotal;\r\n      partes.push(subtotal.toFixed(2));\r\n      detalles.push(`${nombre}: ${cantidad} \u00d7 ${precioUnitario.toFixed(2)} \u20ac = ${subtotal.toFixed(2)} \u20ac`);\r\n    }\r\n  });\r\n\r\nconst soloTotal = total.toFixed(2) + \" \u20ac\";\r\nconst desglose = partes.length > 1 ? partes.join(\" + \") + \" = \" + soloTotal : soloTotal;\r\n\r\nresumen.innerHTML = `<div class=\"total\">\ud83d\udfe9 Total: ${desglose}<\/div>`;\r\n\r\n\/\/ \u0412 \"\u043b\u0435\u0442\u0430\u044e\u0449\u0435\u0439\" \u043a\u043d\u043e\u043f\u043a\u0435 \u2014 \u0442\u043e\u043b\u044c\u043a\u043e \u0438\u0442\u043e\u0433\r\nif (document.getElementById(\"option_price\")) {\r\n  document.getElementById(\"option_price\").textContent = `\ud83d\udfe9 Total: ${soloTotal}`;\r\n\r\n}\r\n}\r\n\r\n<\/script>\r\n<style>\r\n#form-field-dinamico {\r\n  position: relative;\r\n  padding: 20px;\r\n  background: rgba(255, 255, 255, 0.85);\r\n  border-radius: 10px;\r\n  box-shadow: 0 0 10px rgba(0,0,0,0.05);\r\n}\r\n\r\n\r\n#pedir-fixed-wrapper {\r\n  position: absolute;\r\n  bottom: 10px;\r\n  right: 10px;\r\n  z-index: 10;\r\n  background: #fff;\r\n  padding: 12px 16px;\r\n  border: 1px solid #ddd;\r\n  border-radius: 10px;\r\n  box-shadow: 0 4px 12px rgba(0,0,0,0.1);\r\n  display: flex;\r\n  align-items: center;\r\n  gap: 12px;\r\n}\r\n\r\n#option_price {\r\n  font-weight: bold;\r\n  font-size: 1em;\r\n  color: #3c763d;\r\n}\r\n\r\n.parametro-group {\r\n  margin-bottom: 8px;\r\n  display: flex;\r\n  align-items: center;\r\n  flex-wrap: wrap;\r\n}\r\n\r\n.parametro-group label {\r\n  margin-right: 8px;\r\n}\r\n\r\n.mod-container select,\r\n.mod-container input[type=\"number\"] {\r\n  display: inline-block;\r\n  max-width: 200px;\r\n  margin-left: 6px;\r\n  margin-right: 8px;\r\n  vertical-align: middle;\r\n  height: auto;\r\n  line-height: 1.2;\r\n  padding: 4px 6px;\r\n  font-size: 0.95em;\r\n}\r\n.parametro-group {\r\n  display: flex;\r\n  align-items: flex-start;\r\n  flex-wrap: wrap;\r\n  gap: 6px;\r\n  margin-bottom: 8px;\r\n}\r\n\r\n.parametro-group label {\r\n  margin-right: 8px;\r\n  vertical-align: middle;\r\n}\r\n\r\n.mi-header-icons {\r\n  display: flex;\r\n  gap: 20px;\r\n  align-items: center;\r\n  justify-content: center;\r\n  font-size: 18px;\r\n  background-color: #E9CC3A;\r\n  border-radius: 4px;\r\n  padding:6px 14px;\r\n  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.5);\r\n}\r\n<\/style>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>","protected":false},"excerpt":{"rendered":"<p>El buen estado de un edificio no depende solo de su construcci\u00f3n, sino del cuidado continuo que se le brinda. Nuestro servicio de mantenimiento general est\u00e1 pensado para garantizar la seguridad, funcionalidad y est\u00e9tica de comunidades, oficinas y locales. Ofrecemos intervenciones preventivas y correctivas en instalaciones el\u00e9ctricas, fontaner\u00eda, iluminaci\u00f3n, peque\u00f1as reparaciones, sustituciones, revisi\u00f3n de zonas [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_joinchat":[],"footnotes":""},"class_list":["post-2652","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages\/2652","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/comments?post=2652"}],"version-history":[{"count":0,"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/pages\/2652\/revisions"}],"wp:attachment":[{"href":"https:\/\/zabalimp.es\/eu\/wp-json\/wp\/v2\/media?parent=2652"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}