1. Principios de IA
| Principio | Aplicación |
|---|
| Plaza primero | CTA dominante “Apuntarme” / “Quiero una plaza” en home |
| Público vs coach | Form abierto; inbox solo autenticado |
| Pocos niveles | Público (3) + Coach (3) — profundidad máx. 2 clicks a detalle |
| Lenguaje de dominio | Plaza, clase, franja, solicitud — no “ticket”, “lead CRM”, “order” |
| Código visible | VO-… en success e inbox para referencia oral |
2. Sitemap
/ Home (público)
/apuntarme Formulario de plaza (público)
/ok Success post-solicitud (público)
/login Login JWT coach
/inbox Lista + stats (auth COACH)
/inbox/:id Detalle + estado (auth COACH)
/** → redirect /
Árbol por audiencia
| Audiencia | Nodos relevantes |
|---|
| Visitante | Home → Apuntarme → Ok |
| Coach | Login → Inbox → Detail |
| Ambos | Home (coach link en nav) |
3. Navegación
Pública
| Elemento | Destino | Notas |
|---|
| Wordmark VOLTA | / | Display Syne, extrabold |
| Clases | #clases | Ancla home |
| Horarios | #horarios | Ancla home |
| Coach | /login | Entrada panel |
| Apuntarme | /apuntarme | Primary CTA (ink × lime text) |
Coach (autenticado)
| Elemento | Destino | Visibilidad |
|---|
| Wordmark / Inbox | /inbox | COACH |
| Badge rol | — | COACH |
| Nombre usuario | — | COACH |
| Salir | limpia token → /login | COACH |
| Card solicitud | /inbox/:id | COACH |
| Volver (detalle) | /inbox | COACH |
No hay menú lateral multi-sección en v1 (evita IA de CRM).
4. Inventario de contenido
| Pantalla | Contenidos |
|---|
| Home | Eyebrow “CLUB DE BARRIO · VALENCIA”, H1 eslogan, lead, CTAs, 3 stats teaser, hero img, grid clases, horarios, footer demo |
| Join | Título, campos form, submit, link atrás |
| Success | Mensaje OK, código, siguiente paso (te contactamos) |
| Login | Título panel coach, email, password, submit, error |
| Inbox | Stats (total, open, byStatus), lista cards, empty, error |
| Detail | Meta código/tipo, contacto, preferencias, notas, acciones estado |
5. Taxonomía y etiquetas
RequestStatus
| Status API | Label UI | Semántica |
|---|
NEW | Nueva | Acaba de llegar; sin contacto |
CONTACTED | Contactada | Coach ha hablado / escrito |
CONFIRMED | Confirmada | Plaza cerrada |
CANCELLED | Cancelada | Sin hueco / desiste / no contesta |
Orden de lista: por createdAt descendente (más reciente primero).
ClassType
| API | Label UI sugerido | Notas |
|---|
HIIT | HIIT | Alta intensidad |
YOGA | Yoga | Suave / movilidad |
BASKET | Basket | Cancha / equipo |
KIDS | Kids | Infantil |
OPEN | Cancha abierta | Libre / OPEN |
6. Modelo mental vs UI
| Modelo mental del usuario | Representación |
|---|
| “Apuntarme al grupo” | Form /apuntarme |
| “Me dieron un número de referencia” | code VO- |
| “Lista del día de gente nueva” | Inbox + badge NEW |
| “Ya le llamé” | Status CONTACTED |
| “Tiene plaza” | Status CONFIRMED |
7. Rutas API alineadas a IA
| UI | API |
|---|
| Submit join | POST /api/requests |
| Login | POST /api/auth/login |
| Inbox list | GET /api/requests |
| Stats | GET /api/requests/stats/summary |
| Detail | GET /api/requests/:id |
| Cambiar estado | PATCH /api/requests/:id/status |
8. Decisiones de IA descartadas
| Idea | Por qué no en L1 |
|---|
| Área de socio con historial | Multi-sesión y cuenta pública |
| Calendario semanal interactivo | Aforo live = L2+ |
| Chat coach–socio in-app | Fuera job mínimo |
| Nested nav “CRM → Leads → …” | Sobre-arquitectura |