diff --git a/configuracion.html b/configuracion.html
index d791ae2..977a7f5 100644
--- a/configuracion.html
+++ b/configuracion.html
@@ -84,31 +84,83 @@
Escanea el código QR para vincular tu número de empresa. Esto permitirá enviar notificaciones automáticas.
-
+ Escanea el código QR para vincular tu número de empresa.
Instancia segura gestionada automáticamente por el servidor.
-
-
-
Proveedores
-
Próximamente
+
+
+
Conexión con Aseguradoras
+
Configura tus accesos para que el robot descargue los servicios automáticamente.
+
+
+
+
+
+
+
+
+
M
+
+
Multiasistencia
+
Conexión Web
+
+
+
+
+
+
+
+
+
+
+
H
+
+
HomeServe
+
Conexión Web
+
+
+
+
+
+
Tus credenciales se guardan encriptadas y solo se usan para la sincronización automática.
@@ -167,59 +219,75 @@
if(tabId === 'others') { loadCompanies(); loadStatusesConfig(); }
if(tabId === 'whatsapp') { checkWhatsappStatus(); }
+ if(tabId === 'providers') { loadProviderCredentials(); } // Cargar credenciales
+ }
+
+ // --- GESTIÓN DE PROVEEDORES (NUEVO) ---
+ async function loadProviderCredentials() {
+ try {
+ const res = await fetch(`${API_URL}/providers/credentials`, {
+ headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` }
+ });
+ const data = await res.json();
+
+ if (data.ok && data.credentials) {
+ data.credentials.forEach(cred => {
+ const inputUser = document.getElementById(`user_${cred.provider}`);
+ const inputPass = document.getElementById(`pass_${cred.provider}`);
+ if(inputUser) inputUser.value = cred.username;
+ // No rellenamos la contraseña por seguridad, solo el usuario
+ if(inputPass) inputPass.placeholder = "•••••••• (Guardada)";
+ });
+ }
+ } catch(e) { console.error("Error loading credentials", e); }
+ }
+
+ async function saveProviderCreds(event, provider) {
+ event.preventDefault();
+ const username = document.getElementById(`user_${provider}`).value;
+ const password = document.getElementById(`pass_${provider}`).value;
+
+ if(!username || !password) {
+ showToast("Rellena usuario y contraseña", true);
+ return;
+ }
+
+ try {
+ const res = await fetch(`${API_URL}/providers/credentials`, {
+ method: 'POST',
+ headers: { "Content-Type": "application/json", "Authorization": `Bearer ${localStorage.getItem("token")}` },
+ body: JSON.stringify({ provider, username, password })
+ });
+
+ if(res.ok) {
+ showToast(`✅ Acceso a ${provider} guardado`);
+ } else {
+ showToast("Error al guardar", true);
+ }
+ } catch(e) { showToast("Error de conexión", true); }
}
// --- WHATSAPP STATUS (AUTOMÁTICO) ---
async function checkWhatsappStatus() {
const container = document.getElementById('waStatusContainer');
- container.innerHTML = `
-
-
- Verificando instancia...
-
`;
+ container.innerHTML = `
Verificando instancia...
`;
lucide.createIcons();
try {
- // Llamamos a NUESTRO backend, que gestiona todo con Evolution
- const res = await fetch(`${API_URL}/whatsapp/status`, {
- headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` }
- });
-
+ const res = await fetch(`${API_URL}/whatsapp/status`, { headers: { "Authorization": `Bearer ${localStorage.getItem("token")}` } });
const data = await res.json();
if (!data.ok) throw new Error(data.error || "Error desconocido");
if (data.state === "open") {
- container.innerHTML = `
-
-
-
-
-
Conectado
-
Instancia: ${data.instanceName}
-
`;
+ container.innerHTML = `
Conectado
Instancia: ${data.instanceName}
`;
} else if (data.qr) {
- container.innerHTML = `
-
-
-
Esperando escaneo...
-
`;
-
- if(data.qr.startsWith('data:image')) {
- document.getElementById('qrcode').innerHTML = `

`;
- } else {
- new QRCode(document.getElementById("qrcode"), { text: data.qr, width: 180, height: 180 });
- }
- } else {
- container.innerHTML = `
Iniciando... intenta de nuevo en unos segundos.
`;
- }
+ container.innerHTML = `
`;
+ if(data.qr.startsWith('data:image')) { document.getElementById('qrcode').innerHTML = `

`; }
+ else { new QRCode(document.getElementById("qrcode"), { text: data.qr, width: 180, height: 180 }); }
+ } else { container.innerHTML = `
Iniciando... intenta de nuevo en unos segundos.
`; }
} catch(e) {
- container.innerHTML = `
-
-
-
Error de conexión
-
${e.message}
-
`;
+ container.innerHTML = `
Error de conexión
${e.message}
`;
}
lucide.createIcons();
}