mirror of
https://github.com/marcogll/telegram_new_socias.git
synced 2026-01-13 21:25:16 +00:00
Se han extraído los flujos de conversación de los handlers de y a archivos JSON dedicados dentro del nuevo directorio . Este cambio tiene como objetivo: 1. **Centralizar y desacoplar la lógica de conversación**: Al separar las preguntas y los estados del código de Python, se facilita la visualización, edición y mantenimiento de los flujos sin necesidad de modificar la lógica de la aplicación. 2. **Facilitar la mejora de los flujos**: Con los flujos definidos en un formato de datos estructurado, es más sencillo analizarlos, identificar posibles errores o bucles, y realizar mejoras de manera más segura. 3. **Preparar para futuras funcionalidades**: Esta estructura sienta las bases para poder cargar y gestionar los flujos de conversación de manera dinámica, permitiendo, por ejemplo, la creación de un editor visual de flujos o la carga de flujos desde una base de datos. Se han creado los siguientes archivos: - : Contiene el flujo de onboarding de nuevas empleadas. - : Define el flujo para solicitar vacaciones. - : Especifica el flujo para solicitar permisos.
83 lines
2.3 KiB
JSON
83 lines
2.3 KiB
JSON
{
|
|
"flow_name": "leave_request",
|
|
"steps": [
|
|
{
|
|
"state": "PERMISO_CUANDO",
|
|
"question": "⏱️ **Solicitud de Permiso**\n\n¿Para cuándo lo necesitas?",
|
|
"handler": "recibir_cuando_permiso",
|
|
"type": "keyboard",
|
|
"options": ["Hoy", "Mañana", "Pasado mañana", "Fecha específica"],
|
|
"next_step": [
|
|
{
|
|
"condition": "response in ['Hoy', 'Mañana', 'Pasado mañana']",
|
|
"state": "HORARIO"
|
|
},
|
|
{
|
|
"condition": "response == 'Fecha específica'",
|
|
"state": "PERMISO_ANIO"
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"state": "PERMISO_ANIO",
|
|
"question": "¿Para qué año es el permiso? (elige el actual o el siguiente)",
|
|
"handler": "recibir_anio_permiso",
|
|
"type": "keyboard",
|
|
"options": ["current_year", "next_year"],
|
|
"next_step": "INICIO_DIA"
|
|
},
|
|
{
|
|
"state": "INICIO_DIA",
|
|
"question": "¿En qué *día* inicia el permiso? (número, ej: 12)",
|
|
"handler": "recibir_inicio_dia",
|
|
"type": "text",
|
|
"next_step": "INICIO_MES"
|
|
},
|
|
{
|
|
"state": "INICIO_MES",
|
|
"question": "¿De qué *mes* inicia?",
|
|
"handler": "recibir_inicio_mes",
|
|
"type": "keyboard",
|
|
"options": [
|
|
"Enero", "Febrero", "Marzo",
|
|
"Abril", "Mayo", "Junio",
|
|
"Julio", "Agosto", "Septiembre",
|
|
"Octubre", "Noviembre", "Diciembre"
|
|
],
|
|
"next_step": "FIN_DIA"
|
|
},
|
|
{
|
|
"state": "FIN_DIA",
|
|
"question": "¿Qué *día* termina?",
|
|
"handler": "recibir_fin_dia",
|
|
"type": "text",
|
|
"next_step": "FIN_MES"
|
|
},
|
|
{
|
|
"state": "FIN_MES",
|
|
"question": "¿De qué *mes* termina?",
|
|
"handler": "recibir_fin_mes",
|
|
"type": "keyboard",
|
|
"options": [
|
|
"Enero", "Febrero", "Marzo",
|
|
"Abril", "Mayo", "Junio",
|
|
"Julio", "Agosto", "Septiembre",
|
|
"Octubre", "Noviembre", "Diciembre"
|
|
],
|
|
"next_step": "HORARIO"
|
|
},
|
|
{
|
|
"state": "HORARIO",
|
|
"question": "¿Cuál es el horario? Ej: `09:00-11:00` o `Todo el día`.",
|
|
"handler": "recibir_horario",
|
|
"type": "text",
|
|
"next_step": "MOTIVO"
|
|
},
|
|
{
|
|
"state": "MOTIVO",
|
|
"question": "Entendido. ¿Cuál es el motivo o comentario adicional?",
|
|
"handler": "recibir_motivo_fin",
|
|
"type": "text"
|
|
}
|
|
]
|
|
} |