feat: perfil WhatsApp (foto, about, datos) y reset+sync de plantillas

This commit is contained in:
Lizandro Guarnizo
2026-03-13 23:50:30 -05:00
parent 290cdcc7ff
commit 7df05ee3fb
6 changed files with 715 additions and 0 deletions
+96
View File
@@ -58,6 +58,7 @@ try {
<li><a href="scheduled_messages.php" class="nav-link"><i class="fas fa-clock"></i> Mensajes Programados</a></li>
<li><a href="#templates" class="nav-link" data-tab="templates"><i class="fas fa-file-text"></i> Plantillas</a></li>
<li><a href="#autoresponses" class="nav-link" data-tab="autoresponses"><i class="fas fa-robot"></i> Respuestas Auto</a></li>
<li><a href="#whatsapp_profile" class="nav-link" data-tab="whatsapp_profile"><i class="fab fa-whatsapp"></i> Perfil WhatsApp</a></li>
<li><a href="#system_config" class="nav-link" data-tab="system_config"><i class="fas fa-cog"></i> Configuración</a></li>
<li><a href="#logs" class="nav-link" data-tab="logs"><i class="fas fa-file-alt"></i> Logs</a></li>
<li><a href="#terms" class="nav-link" data-tab="terms"><i class="fas fa-file-contract"></i> T&amp;C Aceptaciones</a></li>
@@ -664,6 +665,98 @@ try {
</div>
</div>
<!-- WhatsApp Profile Tab -->
<div id="whatsapp_profile" class="tab-content">
<div class="card">
<div class="card-header d-flex justify-content-between align-items-center">
<h5><i class="fab fa-whatsapp text-success"></i> Perfil de WhatsApp Business</h5>
<button class="btn btn-outline-primary btn-sm" onclick="loadWhatsAppProfile()">
<i class="fas fa-sync-alt"></i> Recargar desde WhatsApp
</button>
</div>
<div class="card-body">
<div class="row">
<!-- Foto de perfil -->
<div class="col-md-3 text-center mb-4">
<div class="mb-3">
<img id="wp-profile-photo-preview" src="" alt="Foto de perfil"
style="width:120px;height:120px;border-radius:50%;object-fit:cover;border:3px solid #25D366;display:none;">
<div id="wp-profile-photo-placeholder"
style="width:120px;height:120px;border-radius:50%;background:#f0f0f0;border:3px solid #ccc;display:inline-flex;align-items:center;justify-content:center;">
<i class="fas fa-user fa-3x text-muted"></i>
</div>
</div>
<div class="mb-2">
<label class="form-label small fw-bold">Cambiar foto de perfil</label>
<input type="file" id="wp-photo-file" class="form-control form-control-sm" accept="image/jpeg,image/png">
<small class="text-muted">JPG o PNG, máx. 5 MB</small>
</div>
<button class="btn btn-success btn-sm w-100" onclick="uploadWhatsAppProfilePhoto()">
<i class="fas fa-upload"></i> Subir foto
</button>
</div>
<!-- Datos del perfil -->
<div class="col-md-9">
<form id="wp-profile-form">
<div class="mb-3">
<label class="form-label">Descripción (about) <small class="text-muted">— visible en el perfil de WhatsApp</small></label>
<textarea class="form-control" id="wp-about" rows="2" maxlength="139" placeholder="Ej: Horario de atención: L-V 8am-6pm"></textarea>
<small class="text-muted">Máx. 139 caracteres</small>
</div>
<div class="mb-3">
<label class="form-label">Descripción larga</label>
<textarea class="form-control" id="wp-description" rows="3" maxlength="512" placeholder="Descripción detallada del negocio"></textarea>
</div>
<div class="row">
<div class="col-md-6 mb-3">
<label class="form-label">Dirección</label>
<input type="text" class="form-control" id="wp-address" placeholder="Dirección física del negocio">
</div>
<div class="col-md-6 mb-3">
<label class="form-label">Correo electrónico</label>
<input type="email" class="form-control" id="wp-email" placeholder="contacto@empresa.com">
</div>
</div>
<div class="mb-3">
<label class="form-label">Sitio web</label>
<input type="url" class="form-control" id="wp-website" placeholder="https://www.empresa.com">
</div>
<div class="mb-3">
<label class="form-label">Categoría de negocio</label>
<select class="form-select" id="wp-vertical">
<option value="">— Seleccionar —</option>
<option value="UNDEFINED">Sin categoría</option>
<option value="OTHER">Otro</option>
<option value="AUTO">Automotriz</option>
<option value="BEAUTY">Belleza / Spa</option>
<option value="APPAREL">Ropa / Moda</option>
<option value="EDU">Educación</option>
<option value="ENTERTAIN">Entretenimiento</option>
<option value="EVENT_PLAN">Eventos</option>
<option value="FINANCE">Finanzas</option>
<option value="GROCERY">Supermercado</option>
<option value="GOVT">Gobierno</option>
<option value="HOTEL">Hotel</option>
<option value="HEALTH">Salud / Medicina</option>
<option value="NONPROFIT">Organización sin fines de lucro</option>
<option value="PROF_SERVICES">Servicios profesionales</option>
<option value="RETAIL">Comercio minorista</option>
<option value="TRAVEL">Viajes / Turismo</option>
<option value="RESTAURANT">Restaurante</option>
<option value="NOT_A_BIZ">No es un negocio</option>
</select>
</div>
<button type="button" class="btn btn-primary" onclick="saveWhatsAppProfile()">
<i class="fas fa-save"></i> Guardar cambios de perfil
</button>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- Templates Tab -->
<div id="templates" class="tab-content">
<div class="card">
@@ -673,6 +766,9 @@ try {
<button class="btn btn-success" id="btn-sync-templates" onclick="syncTemplatesFromFacebook()">
<i class="fas fa-sync-alt"></i> Sincronizar desde Facebook
</button>
<button class="btn btn-danger ms-2" id="btn-reset-sync-templates" onclick="resetAndSyncTemplates()">
<i class="fas fa-trash-restore"></i> Limpiar y Re-sincronizar
</button>
</div>
</div>
<div class="card-body">