Files
AutoBooking/SESSION-2026-05-30.md

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
```