diff --git a/almeira-store-app/src/app/admin/configuracion/page.tsx b/almeira-store-app/src/app/admin/configuracion/page.tsx index 0ff958a..16abafc 100644 --- a/almeira-store-app/src/app/admin/configuracion/page.tsx +++ b/almeira-store-app/src/app/admin/configuracion/page.tsx @@ -143,7 +143,7 @@ export default function AdminSettingsPage() { handlePhoneChange(e.target.value)} className="w-full bg-slate-950 border border-slate-800 rounded-xl pl-9 pr-3.5 py-2.5 text-emerald-300 font-bold outline-hidden focus:border-emerald-400" diff --git a/almeira-store-app/src/app/admin/proveedores/page.tsx b/almeira-store-app/src/app/admin/proveedores/page.tsx index 97505a1..97793f9 100644 --- a/almeira-store-app/src/app/admin/proveedores/page.tsx +++ b/almeira-store-app/src/app/admin/proveedores/page.tsx @@ -507,7 +507,7 @@ export default function AdminSuppliersPage() { setPhone(e.target.value)} className="w-full bg-slate-950 border border-slate-800 rounded-xl px-3.5 py-2.5 text-emerald-300 outline-hidden focus:border-emerald-400 font-mono font-bold" diff --git a/almeira-store-app/src/app/admin/usuarios/page.tsx b/almeira-store-app/src/app/admin/usuarios/page.tsx index bab1563..60c3e7d 100644 --- a/almeira-store-app/src/app/admin/usuarios/page.tsx +++ b/almeira-store-app/src/app/admin/usuarios/page.tsx @@ -628,7 +628,7 @@ export default function AdminUsersPage() { setPhone(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" diff --git a/almeira-store-app/src/app/checkout/page.tsx b/almeira-store-app/src/app/checkout/page.tsx index cbdaa46..8b44415 100644 --- a/almeira-store-app/src/app/checkout/page.tsx +++ b/almeira-store-app/src/app/checkout/page.tsx @@ -308,7 +308,7 @@ ${order.depositAmount > 0 ? `⚡ *Separación:* ${formatCOP(order.depositAmount) setCustomerPhone(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-sm text-white focus:border-purple-400 outline-hidden" diff --git a/almeira-store-app/src/components/auth/AuthModal.tsx b/almeira-store-app/src/components/auth/AuthModal.tsx index 95856fd..f301de8 100644 --- a/almeira-store-app/src/components/auth/AuthModal.tsx +++ b/almeira-store-app/src/components/auth/AuthModal.tsx @@ -578,7 +578,7 @@ export const AuthModal: React.FC = () => { setIdentifier(e.target.value)} className="w-full bg-neutral-900 border border-neutral-800 rounded-2xl px-4 py-3 text-white text-sm outline-hidden focus:border-purple-500 transition-all" @@ -705,7 +705,7 @@ export const AuthModal: React.FC = () => { setPhone(e.target.value)} className="w-full bg-neutral-900 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-500" diff --git a/dripzone-app/android/app/src/main/res/layout/bottom_sheet_order_verification.xml b/dripzone-app/android/app/src/main/res/layout/bottom_sheet_order_verification.xml index 01427c1..bde591c 100644 --- a/dripzone-app/android/app/src/main/res/layout/bottom_sheet_order_verification.xml +++ b/dripzone-app/android/app/src/main/res/layout/bottom_sheet_order_verification.xml @@ -131,7 +131,7 @@ android:layout_height="46dp" android:layout_marginTop="6dp" android:background="@drawable/bg_search_input" - android:hint="Ej. 3167455877" + android:hint="Ej. 3001234567" android:inputType="phone" android:maxLength="10" android:paddingHorizontal="14dp" diff --git a/dripzone-app/android/app/src/main/res/layout/dialog_custom_order.xml b/dripzone-app/android/app/src/main/res/layout/dialog_custom_order.xml index d93e36b..32d2b9f 100644 --- a/dripzone-app/android/app/src/main/res/layout/dialog_custom_order.xml +++ b/dripzone-app/android/app/src/main/res/layout/dialog_custom_order.xml @@ -97,7 +97,7 @@ android:layout_height="46dp" android:layout_marginTop="4dp" android:background="@drawable/bg_search_input" - android:hint="Ej. 3167455877" + android:hint="Ej. 3001234567" android:inputType="phone" android:maxLength="10" android:paddingHorizontal="14dp" diff --git a/dripzone-app/src/app/mis-pedidos/page.tsx b/dripzone-app/src/app/mis-pedidos/page.tsx index df3e2d6..fe12a3c 100644 --- a/dripzone-app/src/app/mis-pedidos/page.tsx +++ b/dripzone-app/src/app/mis-pedidos/page.tsx @@ -329,7 +329,7 @@ export default function MisPedidosPage() { type="tel" value={phoneSearch} onChange={(e) => setPhoneSearch(e.target.value)} - placeholder="Ingresa tu número (ej: 316 745 5877)" + placeholder="Ingresa tu número (ej: 300 123 4567)" className="w-full bg-neutral-950 border border-neutral-800 focus:border-purple-500 rounded-2xl pl-10 pr-4 py-2.5 text-xs sm:text-sm text-white placeholder-neutral-500 focus:outline-none transition-all" /> diff --git a/dripzone-app/src/components/admin/WhatsAppOrderLinkModal.tsx b/dripzone-app/src/components/admin/WhatsAppOrderLinkModal.tsx index a87aca5..d75edcb 100644 --- a/dripzone-app/src/components/admin/WhatsAppOrderLinkModal.tsx +++ b/dripzone-app/src/components/admin/WhatsAppOrderLinkModal.tsx @@ -202,7 +202,7 @@ export function WhatsAppOrderLinkModal({ type="text" value={customerPhone} onChange={(e) => setCustomerPhone(e.target.value)} - placeholder="Ej: 316 745 5877" + placeholder="Ej: 300 123 4567" className="w-full bg-neutral-900 border border-neutral-800 focus:border-emerald-500 rounded-xl px-3.5 py-2 text-xs text-white placeholder-neutral-500 focus:outline-none" /> diff --git a/dripzone-app/src/lib/templates-service.ts b/dripzone-app/src/lib/templates-service.ts index da9a372..4217d1d 100644 --- a/dripzone-app/src/lib/templates-service.ts +++ b/dripzone-app/src/lib/templates-service.ts @@ -102,7 +102,7 @@ Estamos alistando tu paquete. Te enviaremos el número de guía o notificación { key: 'tienda_nombre', label: 'Nombre de Tienda', example: 'DripZone Luxury', description: 'Nombre comercial configurado' }, { key: 'orden_id', label: 'No. de Orden', example: 'ORD-9842', description: 'Identificador único del pedido' }, { key: 'cliente_nombre', label: 'Nombre del Cliente', example: 'Cliente DripZone', description: 'Nombre registrado' }, - { key: 'cliente_telefono', label: 'Teléfono Cliente', example: '3167455877', description: 'Celular del comprador' }, + { key: 'cliente_telefono', label: 'Teléfono Cliente', example: '3001234567', description: 'Celular del comprador' }, { key: 'cliente_direccion', label: 'Dirección de Entrega', example: 'Calle 5 # 24-80, Apto 302', description: 'Dirección física' }, { key: 'cliente_ciudad', label: 'Ciudad Destino', example: 'Cali', description: 'Municipio de despacho' }, { key: 'articulos_resumen', label: 'Lista de Artículos', example: '👟 Nike Air Force 1 (Talla 40) x1 - $125.000 COP', description: 'Pares solicitados' }, @@ -158,7 +158,7 @@ Estamos alistando tu paquete. Te enviaremos el número de guía o notificación { key: 'tienda_nombre', label: 'Nombre de Tienda', example: 'DripZone', description: 'Nombre de la marca' }, { key: 'orden_id', label: 'No. Orden', example: 'ORD-9842', description: 'ID de la orden' }, { key: 'cliente_nombre', label: 'Nombre Cliente', example: 'Cliente DripZone', description: 'Nombre' }, - { key: 'cliente_telefono', label: 'Teléfono', example: '3167455877', description: 'Teléfono' }, + { key: 'cliente_telefono', label: 'Teléfono', example: '3001234567', description: 'Teléfono' }, { key: 'cliente_direccion', label: 'Dirección', example: 'Av 6N # 28N-12', description: 'Dirección' }, { key: 'cliente_ciudad', label: 'Ciudad', example: 'Cali', description: 'Ciudad' }, { key: 'articulos_resumen', label: 'Artículos', example: '• Jordan 4 Retro (Talla 41) x1 = $140.000 COP', description: 'Lista' }, @@ -243,7 +243,7 @@ Estamos alistando tu paquete. Te enviaremos el número de guía o notificación defaultContent: `Hola {tienda_nombre}! 👋 Quiero consultar la disponibilidad de unas zapatillas para despacho contraentrega en 24 horas.`, availableVariables: [ { key: 'tienda_nombre', label: 'Nombre Tienda', example: 'DripZone', description: 'Nombre' }, - { key: 'telefono_tienda', label: 'Teléfono Tienda', example: '573167455877', description: 'WhatsApp oficial' }, + { key: 'telefono_tienda', label: 'Teléfono Tienda', example: '573001234567', description: 'WhatsApp oficial' }, { key: 'ciudad_tienda', label: 'Ciudad Sede', example: 'Cali, Colombia', description: 'Ubicación' }, ], }, diff --git a/scripts/deploy_pacifictrans_apk.py b/scripts/deploy_pacifictrans_apk.py index 4c20096..17dfc28 100644 --- a/scripts/deploy_pacifictrans_apk.py +++ b/scripts/deploy_pacifictrans_apk.py @@ -71,15 +71,15 @@ def main(): print("[4/4] Enviando notificación de Pacific Trans GO a WhatsApp (+57 316 745 5877)...", flush=True) text_msg = ( - "👑 *Pacific Trans GO: Autenticación Exclusiva por Celular OTP & Token Persistente de 24 Horas*\n\n" - "¡Hola Carlos! Se ha completado la actualización solicitada en el sistema de acceso y seguridad:\n\n" + "👑 *Pacific Trans GO: Actualización de Privacidad & Datos de Ejemplo Ficticios*\n\n" + "¡Hola Carlos! Se ha completado la actualización solicitada en la plataforma:\n\n" "📱 *App Oficial:* `Pacific Trans GO`\n" - "📦 *Archivo APK:* `PacifictransGo.apk` (APK Nativo e Independiente)\n" + "📦 *Archivo APK:* `PacifictransGo.apk`\n" "🆔 *Package ID:* `co.pacifictrans.go`\n\n" "⚡ *Novedades de la Versión:*\n" - "• 🚫 *Acceso Rápido por Roles Eliminado:* Se eliminaron completamente todos los selectores y accesos rápidos por rol. Nadie puede simular ni ingresar a perfiles sin verificar identidad.\n" - "• 📱 *Autenticación Directa vía Celular + OTP:* Los usuarios únicamente ingresan su número de celular y validan el código OTP de 6 dígitos recibido al instante por WhatsApp.\n" - "• ⏱️ *Token de Sesión Persistente por 24 Horas:* Tras verificar el código OTP, se genera un token criptográfico firmado (HMAC-SHA256) con vigencia exacta de 24 horas. El usuario permanece autenticado automáticamente al cerrar o recargar la app/web durante ese lapso. Superadas las 24 horas, la sesión expira de forma segura exigiendo un nuevo código OTP.\n\n" + "• 🔒 *Privacidad & Anonimización de Datos:* Se reemplazó toda información personal (nombres, números telefónicos y correos de ejemplo o datos de prueba/placeholders) en interfaces públicas, modales, recibos de prueba y cajas de texto por datos totalmente ficticios y profesionales.\n" + "• 📱 *Autenticación Directa vía Celular + OTP:* Acceso exclusivo por número de teléfono móvil validado por código OTP instantáneo.\n" + "• ⏱️ *Token de Sesión Persistente por 24 Horas:* Persistencia automática durante 24 horas continuas.\n\n" f"🔗 *Enlace de Descarga Directa:*\n👉 {APK_URL}" ) diff --git a/sneaky-app/src/app/admin/configuracion/page.tsx b/sneaky-app/src/app/admin/configuracion/page.tsx index d3a2a8f..4d3c917 100644 --- a/sneaky-app/src/app/admin/configuracion/page.tsx +++ b/sneaky-app/src/app/admin/configuracion/page.tsx @@ -143,7 +143,7 @@ export default function AdminSettingsPage() { handlePhoneChange(e.target.value)} className="w-full bg-zinc-950 border border-zinc-800 rounded-xl pl-9 pr-3.5 py-2.5 text-emerald-300 font-bold outline-hidden focus:border-emerald-400" diff --git a/sneaky-app/src/app/admin/proveedores/page.tsx b/sneaky-app/src/app/admin/proveedores/page.tsx index 8be6464..a700514 100644 --- a/sneaky-app/src/app/admin/proveedores/page.tsx +++ b/sneaky-app/src/app/admin/proveedores/page.tsx @@ -507,7 +507,7 @@ export default function AdminSuppliersPage() { setPhone(e.target.value)} className="w-full bg-zinc-950 border border-zinc-800 rounded-xl px-3.5 py-2.5 text-emerald-300 outline-hidden focus:border-emerald-400 font-mono font-bold" diff --git a/sneaky-app/src/app/admin/usuarios/page.tsx b/sneaky-app/src/app/admin/usuarios/page.tsx index bab1563..60c3e7d 100644 --- a/sneaky-app/src/app/admin/usuarios/page.tsx +++ b/sneaky-app/src/app/admin/usuarios/page.tsx @@ -628,7 +628,7 @@ export default function AdminUsersPage() { setPhone(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-400" diff --git a/sneaky-app/src/app/checkout/page.tsx b/sneaky-app/src/app/checkout/page.tsx index cbdaa46..8b44415 100644 --- a/sneaky-app/src/app/checkout/page.tsx +++ b/sneaky-app/src/app/checkout/page.tsx @@ -308,7 +308,7 @@ ${order.depositAmount > 0 ? `⚡ *Separación:* ${formatCOP(order.depositAmount) setCustomerPhone(e.target.value)} className="w-full bg-neutral-950 border border-neutral-800 rounded-xl px-3 py-2 text-sm text-white focus:border-purple-400 outline-hidden" diff --git a/sneaky-app/src/components/auth/AuthModal.tsx b/sneaky-app/src/components/auth/AuthModal.tsx index 95856fd..f301de8 100644 --- a/sneaky-app/src/components/auth/AuthModal.tsx +++ b/sneaky-app/src/components/auth/AuthModal.tsx @@ -578,7 +578,7 @@ export const AuthModal: React.FC = () => { setIdentifier(e.target.value)} className="w-full bg-neutral-900 border border-neutral-800 rounded-2xl px-4 py-3 text-white text-sm outline-hidden focus:border-purple-500 transition-all" @@ -705,7 +705,7 @@ export const AuthModal: React.FC = () => { setPhone(e.target.value)} className="w-full bg-neutral-900 border border-neutral-800 rounded-xl px-3 py-2 text-white outline-hidden focus:border-purple-500" diff --git a/transporte-cali-buenaventura/backend/public/index.html b/transporte-cali-buenaventura/backend/public/index.html index a7d52b6..0e56941 100644 --- a/transporte-cali-buenaventura/backend/public/index.html +++ b/transporte-cali-buenaventura/backend/public/index.html @@ -95,7 +95,7 @@
@@ -679,7 +679,7 @@- El Superadministrador Carlos Almeira (+57 316 745 5877) es la autoridad máxima permanente e inmutable. Desde aquí puedes registrar nuevos administradores u operadores, actualizar sus permisos, activarlos o inactivarlos, o removerlos del sistema. + El Superadministrador Principal es la autoridad máxima permanente e inmutable. Desde aquí puedes registrar nuevos administradores u operadores, actualizar sus permisos, activarlos o inactivarlos, o removerlos del sistema.