{"id":1630,"date":"2025-08-29T03:35:03","date_gmt":"2025-08-29T03:35:03","guid":{"rendered":"https:\/\/ojoaosanti.com\/saude\/?page_id=1630"},"modified":"2025-09-10T19:46:54","modified_gmt":"2025-09-10T19:46:54","slug":"nutri-li-simulador-por-foto","status":"publish","type":"page","link":"https:\/\/ojoaosanti.com\/saude\/en\/nutri-li-simulador-por-foto\/","title":{"rendered":"Nutri Li &#8211; Simulador de Carboidratos por Foto"},"content":{"rendered":"<div data-elementor-type=\"wp-page\" data-elementor-id=\"1630\" class=\"elementor elementor-1630\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-aefbd64 e-flex e-con-boxed e-con e-parent\" data-id=\"aefbd64\" 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\t\t<div class=\"elementor-element elementor-element-5a84082 elementor-widget__width-initial elementor-widget-mobile__width-inherit titulo-gradient elementor-invisible elementor-widget elementor-widget-heading\" data-id=\"5a84082\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;_animation&quot;:&quot;fadeInUp&quot;}\" data-widget_type=\"heading.default\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">How many carbs are in this dish?<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-871b56e elementor-widget elementor-widget-shortcode\" data-id=\"871b56e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <div id=\"nutrili-plate\" class=\"nutrili-plate-box\" style=\"max-width:760px;margin:20px auto;padding:16px;border:1px solid #e6e8eb;border-radius:12px;background:#fff;\">\r\n        <div style=\"display:flex;gap:12px;align-items:center;margin-bottom:12px\">\r\n            <div style=\"width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e6f3fb,#d9eef8);font-size:22px\">\ud83c\udf7d\ufe0f<\/div>\r\n            <div>\r\n                <div style=\"font-weight:600\">Simulator: How many carbs are in this dish?<\/div>\r\n                <div style=\"font-size:13px;color:#657786\">Envie uma foto do prato\/marmita e a Li estimar\u00e1 os gramas de carboidrato. Resultado aproximado.<\/div>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <div style=\"margin-bottom:10px\">\r\n            <label style=\"display:block;margin-bottom:6px\">Choose a photo of the dish<\/label>\r\n            <input type=\"file\" id=\"nutrili_plate_file\" accept=\"image\/*\" \/>\r\n            <div id=\"nutrili_plate_preview\" style=\"margin-top:8px\"><\/div>\r\n        <\/div>\r\n\r\n        <div style=\"margin-bottom:8px\">\r\n            <label>Describe what's on the plate:<\/label>\r\n            <input id=\"nutrili_plate_context\" placeholder=\"Ex: 150g white rice, 1 medium ladle of beans, 1 grilled chicken breast (120g), lettuce and tomato salad, 1 tablespoon of farofa.\" style=\"width:100%;padding:8px;border:1px solid #dfe6ea;border-radius:8px\" \/>\r\n        <\/div>\r\n\r\n        <div style=\"display:flex;gap:8px;align-items:center\">\r\n            <button id=\"nutrili_plate_send\" style=\"background:#066A98;color:#fff;padding:10px 14px;border-radius:8px;border:0;cursor:pointer\">Send photo and analyze<\/button>\r\n            <div id=\"nutrili_plate_status\" style=\"font-size:14px;color:#555\"><\/div>\r\n        <\/div>\r\n\r\n        <div id=\"nutrili_plate_result\" style=\"margin-top:14px;border-top:1px solid #eee;padding-top:12px;\"><\/div>\r\n\r\n        <div style=\"margin-top:12px;font-size:12px;color:#657786\">\u26a0\ufe0f Rough estimates. Not a substitute for clinical evaluation. Do not provide images of minors without consent.<\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    (function(){\r\n        const fileInput = document.getElementById('nutrili_plate_file');\r\n        const preview = document.getElementById('nutrili_plate_preview');\r\n        const sendBtn = document.getElementById('nutrili_plate_send');\r\n        const status = document.getElementById('nutrili_plate_status');\r\n        const result = document.getElementById('nutrili_plate_result');\r\n        const contextInput = document.getElementById('nutrili_plate_context');\r\n\r\n        let selectedFile = null;\r\n\r\n        fileInput.addEventListener('change', (e) => {\r\n            const f = e.target.files[0];\r\n            if (!f) return;\r\n            if (!f.type.startsWith('image\/')) {\r\n                alert('Envie uma imagem v\u00e1lida.');\r\n                return;\r\n            }\r\n            selectedFile = f;\r\n            const img = document.createElement('img');\r\n            img.style.maxWidth = '320px';\r\n            img.style.maxHeight = '240px';\r\n            img.src = URL.createObjectURL(f);\r\n            preview.innerHTML = '';\r\n            preview.appendChild(img);\r\n        });\r\n\r\n        sendBtn.addEventListener('click', async () => {\r\n            if (!selectedFile) { alert('Escolha uma imagem primeiro.'); return; }\r\n            sendBtn.disabled = true;\r\n            status.textContent = 'Enviando imagem...';\r\n            result.innerHTML = '';\r\n\r\n            try {\r\n                const form = new FormData();\r\n                form.append('action', 'nutrili_plate_upload');\r\n                form.append('file', selectedFile);\r\n                form.append('nonce', 'b0b633ad3f');\r\n\r\n                const upRes = await fetch('https:\/\/ojoaosanti.com\/saude\/wp-admin\/admin-ajax.php', { method: 'POST', body: form });\r\n                const upJson = await upRes.json();\r\n                if (!upJson || !upJson.success) {\r\n                    throw new Error(upJson && upJson.error ? upJson.error : 'Falha no upload.');\r\n                }\r\n                const imageUrl = upJson.url;\r\n                status.textContent = 'Imagem enviada. Solicitando an\u00e1lise...';\r\n\r\n                const apiRes = await fetch('https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/nutrili\/v1\/plate', {\r\n                    method: 'POST',\r\n                    headers: { 'Content-Type':'application\/json', 'X-Nutrili-Plate-Nonce': '80e8777079' },\r\n                    body: JSON.stringify({ image_url: imageUrl, context: contextInput.value || '' })\r\n                });\r\n                const apiJson = await apiRes.json();\r\n                if (!apiJson || !apiJson.success) {\r\n                    result.innerHTML = '<div style=\"color:#c00\">Erro: ' + (apiJson && apiJson.error ? apiJson.error : 'Resposta inv\u00e1lida') + '<\/div>';\r\n                } else {\r\n                    result.innerHTML = '<pre style=\"white-space:pre-wrap;font-family:inherit;\">' + apiJson.reply + '<\/pre>';\r\n                }\r\n            } catch (err) {\r\n                console.error(err);\r\n                result.innerHTML = '<div style=\"color:#c00\">Erro: ' + (err.message || 'Falha inesperada') + '<\/div>';\r\n            } finally {\r\n                sendBtn.disabled = false;\r\n                status.textContent = '';\r\n            }\r\n        });\r\n    })();\r\n    <\/script>\r\n    <\/div>\n\t\t\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>How many carbs are in this dish?<\/p>","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-1630","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/pages\/1630","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/comments?post=1630"}],"version-history":[{"count":17,"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/pages\/1630\/revisions"}],"predecessor-version":[{"id":2263,"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/pages\/1630\/revisions\/2263"}],"wp:attachment":[{"href":"https:\/\/ojoaosanti.com\/saude\/en\/wp-json\/wp\/v2\/media?parent=1630"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}