diff --git a/scripts/deploy_pacifictrans_apk.py b/scripts/deploy_pacifictrans_apk.py index 76ea815..d1fa389 100644 --- a/scripts/deploy_pacifictrans_apk.py +++ b/scripts/deploy_pacifictrans_apk.py @@ -71,18 +71,17 @@ def main(): print("[4/4] Enviando notificación de Pacifictrans Go a WhatsApp (+57 316 745 5877)...", flush=True) text_msg = ( - "🚗 *Pacifictrans Go: Actualización Oficial de Plataforma & APK*\n\n" - "¡Hola Carlos! Se ha desplegado una nueva versión con el sistema completo de control financiero, liquidación y Bre-B:\n\n" + "🚗 *Pacifictrans Go: Seguridad de Rutas, Dashboard Admin Exclusivo & Grupos de WhatsApp Separados*\n\n" + "¡Hola Carlos! Se ha desplegado una nueva versión con la reestructuración completa de seguridad y canales de WhatsApp:\n\n" "📱 *App Oficial:* `Pacifictrans Go`\n" "📦 *Archivo APK:* `PacifictransGo.apk` (37.07 MB)\n" "🆔 *Package ID:* `co.pacifictrans.go`\n\n" - "⚡ *Novedades y Módulos Operativos Integrados:*\n" - "• 📥 *Control de Solicitudes de Transferencia Bre-B:* Bandeja centralizada de peticiones para que el Administrador encargado autorice y ejecute formalmente la transferencia por Bre-B hacia Bancolombia, Nequi, Davivienda, etc., con contador en vivo y filtro por estado (Pendiente, Transferida, Rechazada).\n" - "• 💳 *Control de Pagos en Viaje Planificado:* Identificación clara por pasajero de quién ya pagó en línea (Bold, Nequi, Bre-B) y quién está pendiente de pago en efectivo al abordar con toggle interactivo.\n" - "• ⚖️ *Liquidación Automática al Finalizar Recorrido:* Split de comisiones (15% Pacifictrans Go vs 85% Conductor) y abono automático del saldo neto a la billetera digital del conductor.\n" - "• ⚡ *Transferencias Inmediatas Bre-B (Banco de la República):* Despacho 24/7 a cualquier entidad bancaria con Llaves Bre-B (celular, cédula o correo) y costo $0 COP.\n" - "• 🧾 *Comprobante Digital Oficial Bre-B:* Emisión de recibo con código de autorización BanRep y opción de compartir por WhatsApp.\n" - "• 🔒 *Seguridad 2FA & OTP:* Verificación por WhatsApp y correo electrónico estilo Dripzone.\n\n" + "⚡ *Novedades y Mejoras Implementadas:*\n" + "• 🛡️ *Seguridad de Rutas por Permisos de Rol:* Protección de vistas y endpoints API (`ADMIN`, `CONDUCTOR`, `PASAJERO`). Si un usuario no autorizado o visitante intenta ingresar a la consola de administración (`/#admin`) o conductor (`/#conductor`), el sistema activa un Escudo de Seguridad interactivo con acceso restringido.\n" + "• 🖥️ *Dashboard Exclusivo para Administradores:* La página principal quedó 100% limpia para clientes (sólo reserva de cupo, calculadora de fletes, muro de reseñas y descarga de app). La administración ahora opera en su propia Central de Mando Ejecutiva con Radar GPS en vivo, Telemetría, Control Bre-B y Tarifas.\n" + "• 👥 *Separación de Grupos de WhatsApp por App:* Las notificaciones operativas de Pacific Trans GO se envían automáticamente al grupo *'Pacific Trans Notificaciones'* y las de Dripzone al grupo *'Dripzone Notificaciones'*. En caso de que no exista el grupo o el bot no esté agregado, hace fallback inmediato a tu número personal (+57 316 745 5877).\n" + "• 🔍 *Auto-Detección de Grupos Evolution:* Botón en el panel administrativo que consulta Evolution API en vivo (`/api/admin/whatsapp/groups`) y resuelve los JIDs oficiales `@g.us`.\n" + "• 💰 *Bandeja de Transferencias Bre-B:* Control de solicitudes de pago con ciclo de compensación inmediata 24/7 y generación de recibos digitales.\n\n" f"🔗 *Enlace de Descarga Directa:*\n👉 {APK_URL}" ) diff --git a/transporte-cali-buenaventura/backend/public/css/style.css b/transporte-cali-buenaventura/backend/public/css/style.css index 28fd02c..064bcdb 100644 --- a/transporte-cali-buenaventura/backend/public/css/style.css +++ b/transporte-cali-buenaventura/backend/public/css/style.css @@ -1809,6 +1809,207 @@ h1, h2, h3, h4, .brand-title { color: #fff; } +/* ========================================================================== + SELECTORES DE SERVICIO PÚBLICO (HOME LIMPIO) + ========================================================================== */ +.public-service-switcher { + display: flex; + gap: 0.75rem; + background: rgba(15, 23, 42, 0.85); + padding: 0.45rem; + border-radius: var(--radius-full); + border: 1px solid var(--border-glass); + margin-bottom: 2rem; + max-width: 580px; + margin-left: auto; + margin-right: auto; + box-shadow: 0 8px 30px rgba(0, 0, 0, 0.4); +} + +.service-pill-btn { + flex: 1; + background: transparent; + border: none; + color: var(--text-muted); + padding: 0.85rem 1.4rem; + border-radius: var(--radius-full); + font-size: 0.95rem; + font-weight: 700; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + gap: 0.5rem; + transition: all 0.25s ease; + white-space: nowrap; +} + +.service-pill-btn:hover { + color: #fff; + background: rgba(255, 255, 255, 0.05); +} + +.service-pill-btn.active { + background: linear-gradient(135deg, var(--accent-cyan), var(--accent-emerald)); + color: #042f2e; + box-shadow: 0 4px 20px var(--accent-cyan-glow); +} + +/* ========================================================================== + DASHBOARD ADMINISTRATIVO DEDICADO & CONSOLA EJECUTIVA + ========================================================================== */ +.admin-dashboard-container { + max-width: 1400px; + margin: 0 auto; + padding: 1.5rem 1.5rem 5rem; + animation: fadeIn 0.4s ease forwards; +} + +.admin-topbar { + background: linear-gradient(135deg, rgba(15, 23, 42, 0.98), rgba(30, 41, 59, 0.95)); + border: 1px solid rgba(139, 92, 246, 0.35); + border-radius: var(--radius-md); + padding: 1.25rem 1.75rem; + margin-bottom: 2rem; + display: flex; + justify-content: space-between; + align-items: center; + flex-wrap: wrap; + gap: 1rem; + box-shadow: 0 10px 40px rgba(0, 0, 0, 0.55); +} + +.admin-topbar-title { + display: flex; + align-items: center; + gap: 0.75rem; +} + +.admin-status-indicator { + display: inline-flex; + align-items: center; + gap: 0.4rem; + background: rgba(16, 185, 129, 0.15); + color: #34d399; + border: 1px solid rgba(16, 185, 129, 0.3); + padding: 0.3rem 0.75rem; + border-radius: 9999px; + font-size: 0.75rem; + font-weight: 700; +} + +.admin-wa-badge { + display: inline-flex; + align-items: center; + gap: 0.4rem; + background: rgba(37, 211, 102, 0.15); + color: #25d366; + border: 1px solid rgba(37, 211, 102, 0.35); + padding: 0.3rem 0.75rem; + border-radius: 9999px; + font-size: 0.75rem; + font-weight: 700; +} + +.btn-open-dashboard-header { + background: linear-gradient(135deg, #ec4899, #8b5cf6); + color: #fff; + font-weight: 800; + padding: 0.55rem 1.15rem; + border-radius: var(--radius-full); + border: none; + display: inline-flex; + align-items: center; + gap: 0.45rem; + font-size: 0.85rem; + cursor: pointer; + box-shadow: 0 0 20px rgba(236, 72, 153, 0.4); + transition: all 0.25s ease; +} + +.btn-open-dashboard-header:hover { + transform: translateY(-2px); + box-shadow: 0 0 30px rgba(236, 72, 153, 0.6); +} + +.btn-open-driver-header { + background: linear-gradient(135deg, #06b6d4, #10b981); + color: #042f2e; + font-weight: 800; + padding: 0.55rem 1.15rem; + border-radius: var(--radius-full); + border: none; + display: inline-flex; + align-items: center; + gap: 0.45rem; + font-size: 0.85rem; + cursor: pointer; + box-shadow: 0 0 20px rgba(6, 182, 212, 0.3); + transition: all 0.25s ease; +} + +.btn-open-driver-header:hover { + transform: translateY(-2px); + box-shadow: 0 0 30px rgba(6, 182, 212, 0.5); +} + +.btn-return-public { + background: rgba(255, 255, 255, 0.08); + border: 1px solid var(--border-glass); + color: #fff; + padding: 0.5rem 1.15rem; + border-radius: var(--radius-sm); + font-size: 0.85rem; + font-weight: 600; + cursor: pointer; + display: inline-flex; + align-items: center; + gap: 0.4rem; + transition: all 0.2s ease; +} + +.btn-return-public:hover { + background: rgba(255, 255, 255, 0.15); + color: var(--accent-cyan); +} + +/* ========================================================================== + ESCUDO DE SEGURIDAD / ACCESO DENEGADO + ========================================================================== */ +.security-shield-card { + max-width: 580px; + margin: 4rem auto; + text-align: center; + background: rgba(15, 23, 42, 0.95); + border: 1px solid rgba(239, 68, 68, 0.35); + border-radius: var(--radius-lg); + padding: 3rem 2rem; + box-shadow: 0 20px 60px rgba(0, 0, 0, 0.65); +} + +.security-shield-icon { + font-size: 4rem; + margin-bottom: 1rem; + display: inline-block; + animation: pulse-shield 2s infinite ease-in-out; +} + +@keyframes pulse-shield { + 0% { transform: scale(1); filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.3)); } + 50% { transform: scale(1.08); filter: drop-shadow(0 0 25px rgba(239, 68, 68, 0.6)); } + 100% { transform: scale(1); filter: drop-shadow(0 0 10px rgba(239, 68, 68, 0.3)); } +} + +.btn-role-quick-login { + transition: all 0.2s ease; +} + +.btn-role-quick-login:hover { + transform: translateY(-2px); + filter: brightness(1.2); +} + + diff --git a/transporte-cali-buenaventura/backend/public/index.html b/transporte-cali-buenaventura/backend/public/index.html index b2d802d..cc155da 100644 --- a/transporte-cali-buenaventura/backend/public/index.html +++ b/transporte-cali-buenaventura/backend/public/index.html @@ -39,19 +39,19 @@