# Arquitectura v1

## Principios

- Monolito modular Laravel para entrega rapida y mantenible.
- API versionada (`/api/v1`) para web y app movil.
- Portal web usuario (`/cuenta/*`) consumiendo API `v1` con token Sanctum de sesion.
- Proxy web seguro (`/cuenta/api/*`, `/admin/api/*`) para no exponer tokens API en navegador.
- Seguridad by-default: validacion estricta, limitacion de tasa y cabeceras de hardening.

## Modulos implementados

- Auth y usuarios (registro publico sin roles staff, perfil `PATCH /me`).
- Empleos, habitaciones y compartir coche.
- Marketplace de servicios, pagos Stripe, soporte SLA, antifraude.
- Recomendaciones y matching (ranking mejorado opcional Fase 4).
- Chat REST, push FCM, panel admin web y portal usuario `/cuenta/*`.
- App movil Flutter (registro, publicacion, soporte, fraude).

## Flujo de recomendacion

1. Usuario autenticado solicita generacion de recomendaciones.
2. `RecommendationService` obtiene candidatos de empleos, viviendas y rutas.
3. `MatchScoringService` calcula score con pesos configurables.
4. Se persisten recomendaciones ordenadas por score.
5. Se notifica al usuario por canal in-app y email.

## Escalabilidad preparada

- Pesos de matching en `config/matching.php`.
- Tabla de recomendaciones desacoplada por `entity_type` y `entity_id`.
- Limites API centralizados en `AppServiceProvider`.
- Middleware de seguridad aplicable a toda la plataforma.
