30 lines
1.1 KiB
Markdown
30 lines
1.1 KiB
Markdown
```mermaid
|
|
sequenceDiagram
|
|
participant U as Usuario
|
|
participant O as Orquestador (Controller)
|
|
participant QR as QuickRepliesManagerService
|
|
participant FS as Firestore (Quick Replies Data)
|
|
participant DB as Redis (Contexto de Pantalla)
|
|
|
|
Note over U: El usuario entra a una sección (ej: "Pagos")
|
|
U->>O: POST /api/v1/quick-replies/screen
|
|
O->>QR: startQuickReplySession(pantalla: "pagos")
|
|
|
|
QR->>FS: Obtiene preguntas/respuestas de pagos.json
|
|
QR->>DB: Registra 'pantallaContexto' en la sesión
|
|
O-->>U: Devuelve objeto 'quick_replies' (Títulos y Opciones)
|
|
|
|
Note over U: Usuario hace clic en "Donde veo mi saldo?"
|
|
U->>O: POST /api/v1/dialogflow/detect-intent
|
|
|
|
O->>QR: Detecta 'pantallaContexto' activa
|
|
QR->>QR: Valida si el texto coincide con una opción del menú
|
|
|
|
alt Es una opción del Menú
|
|
QR->>O: Retorna respuesta directa (Bypassea Dialogflow)
|
|
O-->>U: "Puedes visualizar esto en la opción X de tu app"
|
|
else No es del menú (Bail out)
|
|
QR->>O: Limpia 'pantallaContexto'
|
|
Note over O: Procede con flujo estándar de Dialogflow
|
|
end
|
|
``` |