131 lines
4.8 KiB
Markdown
131 lines
4.8 KiB
Markdown
# Sesión AutoBooking — 2026-05-29 / 2026-05-30
|
|
|
|
## Qué se hizo en esta sesión
|
|
|
|
### PARTE A — Fix: autobooking-roles v1.0 → v1.1.0
|
|
- Agregado rol `corporate_admin` con cap `read_corporate_dashboard`
|
|
- Agregada cap `manage_autobooking` al rol `administrator`
|
|
- Migración retroactiva idempotente: asigna `corporate_admin` a usuarios con `ab_company_id` en usermeta
|
|
- Backup: `autobooking-roles.php.bak` en el servidor
|
|
|
|
**Archivo:** `/wp-content/plugins/autobooking-roles/autobooking-roles.php`
|
|
|
|
---
|
|
|
|
### PARTE B — Plugin nuevo: autobooking-admin-dashboard v1.0.0
|
|
**Shortcode:** `[autobooking_admin]`
|
|
**Acceso:** solo capability `manage_autobooking`
|
|
|
|
**7 Tabs (SVG icons, sin emojis, ES/EN):**
|
|
1. RESUMEN — KPIs en tiempo real + gráfico 30 días
|
|
2. CONDUCTORES — lista + cola de aprobación (approve/reject/suspend)
|
|
3. EMPRESAS — activar/desactivar + ver facturas
|
|
4. VIAJES — filtros + exportar CSV + detalle con mapa + chat
|
|
5. INCIDENTES — SOS activos + audio + resolver
|
|
6. ZONAS — crear/editar/desactivar zone alerts en mapa
|
|
7. CONFIG — settings plataforma + tarifas por país
|
|
|
|
**Tablas creadas:**
|
|
- `wp_ab_admin_audit` (id, admin_user_id, action, target_type, target_id, meta JSON, created_at)
|
|
- `wp_ab_fare_config` (id, country_code CHAR2 UNIQUE, currency, base_fare, per_km, per_minute, platform_fee_pct, minimum_fare, active, updated_at)
|
|
|
|
**Índice agregado:** `wp_ab_trip_positions` → `trip_ts(trip_id, ts)`
|
|
|
|
**Archivos:**
|
|
```
|
|
/wp-content/plugins/autobooking-admin-dashboard/
|
|
autobooking-admin-dashboard.php
|
|
assets/admin-dashboard.css ← glassmorphism = mismo estilo que driver/passenger
|
|
assets/admin-dashboard.js
|
|
```
|
|
|
|
**Diseño:** mismas variables CSS que el sistema unificado AutoBooking (`--ab-orange #FF6F00`, `--ab-dark #0b0b0b`, `--ab-glass rgba(17,17,17,.55)`, `--ab-glass-border`). Imagen `car-bg.webp` del driver dashboard como fondo al 6% opacidad.
|
|
|
|
---
|
|
|
|
### PARTE C — Plugin nuevo: autobooking-geo-restrict v1.1.0
|
|
**Función:** países permitidos configurables desde el admin. Cada usuario solo opera en el país donde está físicamente (bounding boxes GPS, sin API externa).
|
|
|
|
**Endpoints REST:**
|
|
- `GET /autobooking/v1/geo/check?lat=&lng=` — público, retorna `{allowed, country, message}`
|
|
- `GET /autobooking/v1/admin/geo-settings` — lee config (requiere `manage_autobooking`)
|
|
- `POST /autobooking/v1/admin/geo-settings/save` — guarda `{allowed_countries:[], blocked_message:""}`
|
|
|
|
**Bloquea (HTTP 403):** conductor al ponerse online, pasajero al reservar, corporate al reservar
|
|
|
|
**Config en wp_options:**
|
|
- `ab_allowed_countries` → `["US"]` por defecto
|
|
- `ab_geo_blocked_msg` → mensaje al usuario bloqueado
|
|
|
|
**Países con bounding boxes:** US (contiguous+Alaska+Hawaii), CO, MX, CA, GB, ES, AR, BR, CL, PE, EC, VE
|
|
|
|
**Archivo:**
|
|
```
|
|
/wp-content/plugins/autobooking-geo-restrict/
|
|
autobooking-geo-restrict.php
|
|
```
|
|
|
|
---
|
|
|
|
## Estado de plugins en servidor
|
|
|
|
| Plugin | Versión | Estado |
|
|
|---|---|---|
|
|
| autobooking-roles | 1.1.0 | Activo |
|
|
| autobooking-driver-dashboard | 2.0.0 | Activo |
|
|
| autobooking-passenger-dashboard | 1.0.0 | Activo |
|
|
| autobooking-corporate-dashboard | — | Activo |
|
|
| autobooking-admin-dashboard | 1.0.0 | Activo |
|
|
| **autobooking-geo-restrict** | 1.1.0 | **PENDIENTE ACTIVAR** |
|
|
|
|
---
|
|
|
|
## Hallazgos importantes
|
|
|
|
**Inconsistencia de tarifas (decisión pendiente del dueño):**
|
|
- `passenger-dashboard` calcula en MILLAS con base $2.50
|
|
- `corporate-dashboard` calcula en KILÓMETROS con base $3.00
|
|
- Nueva tabla `wp_ab_fare_config` usa km — acción requerida: migrar ambos plugins para leer de ahí
|
|
|
|
**Tablas posiblemente obsoletas (NO borradas, decisión pendiente):**
|
|
- `wp_ab_rides` y `wp_autobooking_rides` — versiones antiguas
|
|
- `wp_ab_scheduled_trips` — driver v2 usa `wp_ab_trips` con `status='assigned'`
|
|
|
|
---
|
|
|
|
## Pendientes próxima sesión
|
|
|
|
1. Activar `autobooking-geo-restrict` en WP Admin
|
|
2. Agregar panel geo-restrict al tab CONFIG del admin dashboard
|
|
3. Unificar tarifas: passenger y corporate leyendo de `wp_ab_fare_config`
|
|
4. Crear `wp_ab_driver_documents` para documentos de conductores en cola de aprobación
|
|
5. Motor de despacho automático (matching conductor-pasajero)
|
|
6. Stripe Connect para pagos y payouts
|
|
7. Push notifications para conductores al asignar viaje
|
|
8. Sistema de rating del pasajero por conductor
|
|
|
|
---
|
|
|
|
## Conexión servidor
|
|
|
|
```
|
|
SSH: pi@autobooking.online puerto 2230
|
|
Container WP: autobookingonline-wordpress-autobooking-1
|
|
Container DB: mariadb | DB: AutoBookingDB
|
|
```
|
|
|
|
## Archivos locales
|
|
|
|
```
|
|
D:\Proyectos Software\AutoBooking\
|
|
CLAUDE.md <- contexto permanente
|
|
CHANGES.md <- log de cambios detallado
|
|
autobooking-roles.php
|
|
autobooking-admin-dashboard.php
|
|
admin-dashboard.css
|
|
admin-dashboard.js
|
|
autobooking-geo-restrict.php
|
|
Customer-dashboard-original.html <- diseño original pasajero
|
|
SESSION-2026-05-30.md <- este archivo
|
|
```
|