{"id":44,"date":"2025-11-26T02:23:18","date_gmt":"2025-11-26T02:23:18","guid":{"rendered":"https:\/\/mascota-sos.com\/?page_id=44"},"modified":"2025-11-26T02:28:21","modified_gmt":"2025-11-26T02:28:21","slug":"soy-veterinario","status":"publish","type":"page","link":"https:\/\/mascota-sos.com\/?page_id=44","title":{"rendered":"Soy Veterinario"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00bb1&#8243; theme_builder_area=\u00bbpost_content\u00bb _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb][et_pb_row _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb theme_builder_area=\u00bbpost_content\u00bb][et_pb_column _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb type=\u00bb4_4&#8243; theme_builder_area=\u00bbpost_content\u00bb][et_pb_code _builder_version=\u00bb4.27.4&#8243; _module_preset=\u00bbdefault\u00bb theme_builder_area=\u00bbpost_content\u00bb hover_enabled=\u00bb0&#8243; sticky_enabled=\u00bb0&#8243;]<!-- Mascota Dashboard Vet Template Loading --><div class=\"mascota-dashboard vet-dashboard\">\r\n    <header class=\"dashboard-header\">\r\n        <div>\r\n            <h2>Panel Profesional <small style=\"font-size: 12px; color: #ccc;\">v2.1 (REST API)<\/small><\/h2>\r\n            <p style=\"margin: 5px 0 0; color: #64748b;\">Bienvenido, Dr. <\/p>\r\n        <\/div>\r\n        <div class=\"user-tier-badge\" style=\"background: #ecfdf5; color: #059669; border-color: #a7f3d0;\">\r\n            <span class=\"dashicons dashicons-awards\" style=\"vertical-align: middle;\"><\/span> Veterinario Verificado\r\n        <\/div>\r\n    <\/header>\r\n\r\n    <!-- Quick Stats -->\r\n    <div class=\"dashboard-grid\" style=\"flex-direction: row; flex-wrap: wrap; margin-bottom: 30px;\">\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">0<\/h3>\r\n            <p style=\"margin: 0;\">Pacientes Activos<\/p>\r\n        <\/div>\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">0<\/h3>\r\n            <p style=\"margin: 0;\">Citas Hoy<\/p>\r\n        <\/div>\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">4.9<\/h3>\r\n            <p style=\"margin: 0;\">Calificaci\u00f3n<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Main Content Grid -->\r\n    <div class=\"dashboard-grid\">\r\n        \r\n        <!-- Quick Actions -->\r\n        <div class=\"dashboard-section-header\">\r\n            <h3>\u26a1 Acciones R\u00e1pidas<\/h3>\r\n        <\/div>\r\n        \r\n        <div class=\"dashboard-card full-width\">\r\n            <div style=\"display: flex; gap: 15px; flex-wrap: wrap;\">\r\n                <a href=\"https:\/\/mascota-sos.com\/wp-admin\/post-new.php?post_type=mascota_vet_listing\" class=\"button button-primary\">\r\n                    <span class=\"dashicons dashicons-edit\"><\/span> Editar Perfil\r\n                <\/a>\r\n                <a href=\"#\" class=\"button button-outline\">\r\n                    <span class=\"dashicons dashicons-calendar-alt\"><\/span> Ver Agenda Completa\r\n                <\/a>\r\n                <button onclick=\"openPatientLookup()\" class=\"button button-outline\">\r\n                    <span class=\"dashicons dashicons-id-alt\"><\/span> Validar Paciente (QR)\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Recent Patients -->\r\n        <div class=\"dashboard-section-header\" style=\"margin-top: 20px;\">\r\n            <h3>\ud83d\udccb Pacientes Recientes<\/h3>\r\n        <\/div>\r\n\r\n        <div class=\"dashboard-card full-width\">\r\n            <div class=\"no-pets-state\" style=\"padding: 30px;\">\r\n                <span class=\"dashicons dashicons-clipboard\" style=\"font-size: 40px; color: #cbd5e1; margin-bottom: 15px;\"><\/span>\r\n                <p>No hay actividad reciente de pacientes.<\/p>\r\n                <button class=\"button button-small button-outline\">Ver Historial<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Referral Section -->\r\n        <div class=\"dashboard-section-header\" style=\"margin-top: 30px;\">\r\n            <h3>\ud83d\ude80 Gana Dinero<\/h3>\r\n        <\/div>\r\n        <div class=\"dashboard-card full-width\" style=\"background: transparent; border: none; box-shadow: none; padding: 0;\">\r\n            <div class=\"mascota-debug\" style=\"background:red;color:white;padding:10px;\">Debug: Usuario no logueado.<\/div>        <\/div>\r\n\r\n    <!-- Modal de B\u00fasqueda de Paciente -->\r\n    <div id=\"patient-lookup-modal\" class=\"mascota-modal\" style=\"display:none;\">\r\n        <div class=\"modal-content\">\r\n            <span class=\"close-modal\" onclick=\"document.getElementById('patient-lookup-modal').style.display='none'\">&times;<\/span>\r\n            <div class=\"modal-header\">\r\n                <h4>\ud83d\udd0d Buscar Paciente<\/h4>\r\n                <p>Ingresa el ID o escanea el c\u00f3digo QR.<\/p>\r\n            <\/div>\r\n            \r\n            <div class=\"mascota-form\">\r\n                <div class=\"form-group\">\r\n                    <input type=\"text\" id=\"patient-search-input\" placeholder=\"Ej: 123 o C\u00f3digo QR\" autofocus>\r\n                <\/div>\r\n                <button class=\"button button-primary full-width\" onclick=\"searchPatient()\">Buscar<\/button>\r\n            <\/div>\r\n\r\n            <div id=\"patient-result\" style=\"margin-top: 20px; display: none; text-align: center;\">\r\n                <div class=\"pet-details-photo\" id=\"result-photo\" style=\"width: 100px; height: 100px;\"><\/div>\r\n                <h3 id=\"result-name\" style=\"margin: 10px 0 5px;\"><\/h3>\r\n                <p id=\"result-meta\" style=\"color: #64748b; font-size: 14px; margin: 0;\"><\/p>\r\n                <div style=\"margin-top: 15px;\">\r\n                    <a id=\"result-link\" href=\"#\" class=\"button button-small button-outline\">Ver Expediente Completo<\/a>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    function openPatientLookup() {\r\n        document.getElementById('patient-lookup-modal').style.display = 'flex';\r\n        document.getElementById('patient-search-input').focus();\r\n    }\r\n\r\n    function searchPatient() {\r\n        const query = document.getElementById('patient-search-input').value;\r\n        if (!query) return;\r\n\r\n        const btn = document.querySelector('#patient-lookup-modal .button-primary');\r\n        const originalText = btn.innerText;\r\n        btn.innerText = 'Buscando...';\r\n        btn.disabled = true;\r\n\r\n        \/\/ Usar Admin AJAX para mayor robustez\r\n        const ajaxUrl = 'https:\/\/mascota-sos.com\/wp-admin\/admin-ajax.php';\r\n        const nonce = 'b9aa3d434c';\r\n        \r\n        \/\/ Construir URL con par\u00e1metros\r\n        const url = new URL(ajaxUrl);\r\n        url.searchParams.append('action', 'mascota_find_patient');\r\n        url.searchParams.append('search', query);\r\n        url.searchParams.append('nonce', nonce);\r\n\r\n        console.log('Consultando AJAX:', url.toString());\r\n\r\n        fetch(url, {\r\n            method: 'GET',\r\n            credentials: 'include' \/\/ Asegurar env\u00edo de cookies\r\n        })\r\n        .then(response => {\r\n            if (!response.ok) {\r\n                throw new Error('Error de red: ' + response.status);\r\n            }\r\n            return response.text();\r\n        })\r\n        .then(text => {\r\n            try {\r\n                return JSON.parse(text);\r\n            } catch (e) {\r\n                \/\/ Si la respuesta no es JSON v\u00e1lido (ej. errores PHP fatales)\r\n                console.error('Respuesta no v\u00e1lida:', text);\r\n                throw new Error('Error del servidor. Respuesta no v\u00e1lida.');\r\n            }\r\n        })\r\n        .then(res => {\r\n            \/\/ Manejo de errores de WP AJAX\r\n            if (res === 0) {\r\n                throw new Error('Sesi\u00f3n no v\u00e1lida o acci\u00f3n no encontrada. Recarga la p\u00e1gina.');\r\n            }\r\n            if (res === -1) {\r\n                throw new Error('Error de seguridad (Nonce). Recarga la p\u00e1gina.');\r\n            }\r\n\r\n            if (!res.success) {\r\n                \/\/ Extracci\u00f3n segura del mensaje de error\r\n                const msg = (res.data && res.data.message) ? res.data.message : 'Error desconocido al buscar paciente.';\r\n                throw new Error(msg);\r\n            }\r\n            \r\n            const pet = res.data;\r\n             document.getElementById('result-photo').style.backgroundImage = 'url(' + pet.photo + ')';\r\n             document.getElementById('result-name').innerText = pet.name;\r\n             document.getElementById('result-meta').innerText = pet.species + ' \u2022 ' + pet.breed + ' | Due\u00f1o: ' + pet.owner;\r\n             document.getElementById('result-link').href = pet.link;\r\n             \r\n             document.getElementById('patient-result').style.display = 'block';\r\n        })\r\n        .catch(err => {\r\n            console.error(err);\r\n            alert(err.message);\r\n            document.getElementById('patient-result').style.display = 'none';\r\n        })\r\n        .finally(() => {\r\n            btn.innerText = originalText;\r\n            btn.disabled = false;\r\n        });\r\n    }\r\n    <\/script>\r\n<\/div>\r\n[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"<!-- Mascota Dashboard Vet Template Loading --><div class=\"mascota-dashboard vet-dashboard\">\r\n    <header class=\"dashboard-header\">\r\n        <div>\r\n            <h2>Panel Profesional <small style=\"font-size: 12px; color: #ccc;\">v2.1 (REST API)<\/small><\/h2>\r\n            <p style=\"margin: 5px 0 0; color: #64748b;\">Bienvenido, Dr. <\/p>\r\n        <\/div>\r\n        <div class=\"user-tier-badge\" style=\"background: #ecfdf5; color: #059669; border-color: #a7f3d0;\">\r\n            <span class=\"dashicons dashicons-awards\" style=\"vertical-align: middle;\"><\/span> Veterinario Verificado\r\n        <\/div>\r\n    <\/header>\r\n\r\n    <!-- Quick Stats -->\r\n    <div class=\"dashboard-grid\" style=\"flex-direction: row; flex-wrap: wrap; margin-bottom: 30px;\">\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">0<\/h3>\r\n            <p style=\"margin: 0;\">Pacientes Activos<\/p>\r\n        <\/div>\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">0<\/h3>\r\n            <p style=\"margin: 0;\">Citas Hoy<\/p>\r\n        <\/div>\r\n        <div class=\"dashboard-card\" style=\"flex: 1; min-width: 250px; text-align: center;\">\r\n            <h3 style=\"justify-content: center; font-size: 32px; color: var(--primary-color); margin-bottom: 5px;\">4.9<\/h3>\r\n            <p style=\"margin: 0;\">Calificaci\u00f3n<\/p>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <!-- Main Content Grid -->\r\n    <div class=\"dashboard-grid\">\r\n        \r\n        <!-- Quick Actions -->\r\n        <div class=\"dashboard-section-header\">\r\n            <h3>\u26a1 Acciones R\u00e1pidas<\/h3>\r\n        <\/div>\r\n        \r\n        <div class=\"dashboard-card full-width\">\r\n            <div style=\"display: flex; gap: 15px; flex-wrap: wrap;\">\r\n                <a href=\"https:\/\/mascota-sos.com\/wp-admin\/post-new.php?post_type=mascota_vet_listing\" class=\"button button-primary\">\r\n                    <span class=\"dashicons dashicons-edit\"><\/span> Editar Perfil\r\n                <\/a>\r\n                <a href=\"#\" class=\"button button-outline\">\r\n                    <span class=\"dashicons dashicons-calendar-alt\"><\/span> Ver Agenda Completa\r\n                <\/a>\r\n                <button onclick=\"openPatientLookup()\" class=\"button button-outline\">\r\n                    <span class=\"dashicons dashicons-id-alt\"><\/span> Validar Paciente (QR)\r\n                <\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Recent Patients -->\r\n        <div class=\"dashboard-section-header\" style=\"margin-top: 20px;\">\r\n            <h3>\ud83d\udccb Pacientes Recientes<\/h3>\r\n        <\/div>\r\n\r\n        <div class=\"dashboard-card full-width\">\r\n            <div class=\"no-pets-state\" style=\"padding: 30px;\">\r\n                <span class=\"dashicons dashicons-clipboard\" style=\"font-size: 40px; color: #cbd5e1; margin-bottom: 15px;\"><\/span>\r\n                <p>No hay actividad reciente de pacientes.<\/p>\r\n                <button class=\"button button-small button-outline\">Ver Historial<\/button>\r\n            <\/div>\r\n        <\/div>\r\n\r\n        <!-- Referral Section -->\r\n        <div class=\"dashboard-section-header\" style=\"margin-top: 30px;\">\r\n            <h3>\ud83d\ude80 Gana Dinero<\/h3>\r\n        <\/div>\r\n        <div class=\"dashboard-card full-width\" style=\"background: transparent; border: none; box-shadow: none; padding: 0;\">\r\n            <div class=\"mascota-debug\" style=\"background:red;color:white;padding:10px;\">Debug: Usuario no logueado.<\/div>        <\/div>\r\n\r\n    <!-- Modal de B\u00fasqueda de Paciente -->\r\n    <div id=\"patient-lookup-modal\" class=\"mascota-modal\" style=\"display:none;\">\r\n        <div class=\"modal-content\">\r\n            <span class=\"close-modal\" onclick=\"document.getElementById('patient-lookup-modal').style.display='none'\">&times;<\/span>\r\n            <div class=\"modal-header\">\r\n                <h4>\ud83d\udd0d Buscar Paciente<\/h4>\r\n                <p>Ingresa el ID o escanea el c\u00f3digo QR.<\/p>\r\n            <\/div>\r\n            \r\n            <div class=\"mascota-form\">\r\n                <div class=\"form-group\">\r\n                    <input type=\"text\" id=\"patient-search-input\" placeholder=\"Ej: 123 o C\u00f3digo QR\" autofocus>\r\n                <\/div>\r\n                <button class=\"button button-primary full-width\" onclick=\"searchPatient()\">Buscar<\/button>\r\n            <\/div>\r\n\r\n            <div id=\"patient-result\" style=\"margin-top: 20px; display: none; text-align: center;\">\r\n                <div class=\"pet-details-photo\" id=\"result-photo\" style=\"width: 100px; height: 100px;\"><\/div>\r\n                <h3 id=\"result-name\" style=\"margin: 10px 0 5px;\"><\/h3>\r\n                <p id=\"result-meta\" style=\"color: #64748b; font-size: 14px; margin: 0;\"><\/p>\r\n                <div style=\"margin-top: 15px;\">\r\n                    <a id=\"result-link\" href=\"#\" class=\"button button-small button-outline\">Ver Expediente Completo<\/a>\r\n                <\/div>\r\n            <\/div>\r\n        <\/div>\r\n    <\/div>\r\n\r\n    <script>\r\n    function openPatientLookup() {\r\n        document.getElementById('patient-lookup-modal').style.display = 'flex';\r\n        document.getElementById('patient-search-input').focus();\r\n    }\r\n\r\n    function searchPatient() {\r\n        const query = document.getElementById('patient-search-input').value;\r\n        if (!query) return;\r\n\r\n        const btn = document.querySelector('#patient-lookup-modal .button-primary');\r\n        const originalText = btn.innerText;\r\n        btn.innerText = 'Buscando...';\r\n        btn.disabled = true;\r\n\r\n        \/\/ Usar Admin AJAX para mayor robustez\r\n        const ajaxUrl = 'https:\/\/mascota-sos.com\/wp-admin\/admin-ajax.php';\r\n        const nonce = 'b9aa3d434c';\r\n        \r\n        \/\/ Construir URL con par\u00e1metros\r\n        const url = new URL(ajaxUrl);\r\n        url.searchParams.append('action', 'mascota_find_patient');\r\n        url.searchParams.append('search', query);\r\n        url.searchParams.append('nonce', nonce);\r\n\r\n        console.log('Consultando AJAX:', url.toString());\r\n\r\n        fetch(url, {\r\n            method: 'GET',\r\n            credentials: 'include' \/\/ Asegurar env\u00edo de cookies\r\n        })\r\n        .then(response => {\r\n            if (!response.ok) {\r\n                throw new Error('Error de red: ' + response.status);\r\n            }\r\n            return response.text();\r\n        })\r\n        .then(text => {\r\n            try {\r\n                return JSON.parse(text);\r\n            } catch (e) {\r\n                \/\/ Si la respuesta no es JSON v\u00e1lido (ej. errores PHP fatales)\r\n                console.error('Respuesta no v\u00e1lida:', text);\r\n                throw new Error('Error del servidor. Respuesta no v\u00e1lida.');\r\n            }\r\n        })\r\n        .then(res => {\r\n            \/\/ Manejo de errores de WP AJAX\r\n            if (res === 0) {\r\n                throw new Error('Sesi\u00f3n no v\u00e1lida o acci\u00f3n no encontrada. Recarga la p\u00e1gina.');\r\n            }\r\n            if (res === -1) {\r\n                throw new Error('Error de seguridad (Nonce). Recarga la p\u00e1gina.');\r\n            }\r\n\r\n            if (!res.success) {\r\n                \/\/ Extracci\u00f3n segura del mensaje de error\r\n                const msg = (res.data && res.data.message) ? res.data.message : 'Error desconocido al buscar paciente.';\r\n                throw new Error(msg);\r\n            }\r\n            \r\n            const pet = res.data;\r\n             document.getElementById('result-photo').style.backgroundImage = 'url(' + pet.photo + ')';\r\n             document.getElementById('result-name').innerText = pet.name;\r\n             document.getElementById('result-meta').innerText = pet.species + ' \u2022 ' + pet.breed + ' | Due\u00f1o: ' + pet.owner;\r\n             document.getElementById('result-link').href = pet.link;\r\n             \r\n             document.getElementById('patient-result').style.display = 'block';\r\n        })\r\n        .catch(err => {\r\n            console.error(err);\r\n            alert(err.message);\r\n            document.getElementById('patient-result').style.display = 'none';\r\n        })\r\n        .finally(() => {\r\n            btn.innerText = originalText;\r\n            btn.disabled = false;\r\n        });\r\n    }\r\n    <\/script>\r\n<\/div>\r\n\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"","_et_gb_content_width":"","footnotes":""},"class_list":["post-44","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/pages\/44","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mascota-sos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=44"}],"version-history":[{"count":3,"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/pages\/44\/revisions"}],"predecessor-version":[{"id":54,"href":"https:\/\/mascota-sos.com\/index.php?rest_route=\/wp\/v2\/pages\/44\/revisions\/54"}],"wp:attachment":[{"href":"https:\/\/mascota-sos.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=44"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}