mirror of
https://github.com/marcogll/talia_bot.git
synced 2026-01-13 13:25:19 +00:00
57 lines
2.3 KiB
Python
57 lines
2.3 KiB
Python
# app/modules/onboarding.py
|
||
# Este módulo maneja la primera interacción con el usuario (el comando /start).
|
||
# Se encarga de mostrar un menú diferente según quién sea el usuario (dueño, admin, equipo o cliente).
|
||
|
||
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
|
||
|
||
def get_owner_menu():
|
||
"""Crea el menú de botones para el Dueño (Owner)."""
|
||
keyboard = [
|
||
[InlineKeyboardButton("📅 Ver mi agenda", callback_data='view_agenda')],
|
||
[InlineKeyboardButton("⏳ Ver pendientes", callback_data='view_pending')],
|
||
]
|
||
return InlineKeyboardMarkup(keyboard)
|
||
|
||
def get_admin_menu():
|
||
"""Crea el menú de botones para los Administradores."""
|
||
keyboard = [
|
||
[InlineKeyboardButton("📋 Ver Tareas (Vikunja)", callback_data='view_tasks')],
|
||
[InlineKeyboardButton("🏷️ Crear Tag NFC", callback_data='start_create_tag')],
|
||
[InlineKeyboardButton("📊 Estado del sistema", callback_data='view_system_status')],
|
||
]
|
||
return InlineKeyboardMarkup(keyboard)
|
||
|
||
def get_team_menu():
|
||
"""Crea el menú de botones para los Miembros del Equipo."""
|
||
keyboard = [
|
||
[InlineKeyboardButton("🕒 Proponer actividad", callback_data='propose_activity')],
|
||
[InlineKeyboardButton("📄 Ver estatus de solicitudes", callback_data='view_requests_status')],
|
||
]
|
||
return InlineKeyboardMarkup(keyboard)
|
||
|
||
def get_client_menu():
|
||
"""Crea el menú de botones para los Clientes externos."""
|
||
keyboard = [
|
||
[InlineKeyboardButton("🗓️ Agendar una cita", callback_data='schedule_appointment')],
|
||
[InlineKeyboardButton("ℹ️ Información de servicios", callback_data='get_service_info')],
|
||
]
|
||
return InlineKeyboardMarkup(keyboard)
|
||
|
||
def handle_start(user_role):
|
||
"""
|
||
Decide qué mensaje y qué menú mostrar según el rol del usuario.
|
||
"""
|
||
welcome_message = "Hola, soy Talía. ¿En qué puedo ayudarte hoy?"
|
||
|
||
# Dependiendo del rol, llamamos a una función de menú diferente
|
||
if user_role == "owner":
|
||
menu = get_owner_menu()
|
||
elif user_role == "admin":
|
||
menu = get_admin_menu()
|
||
elif user_role == "team":
|
||
menu = get_team_menu()
|
||
else: # Por defecto, si no es ninguno de los anteriores, es un cliente
|
||
menu = get_client_menu()
|
||
|
||
return welcome_message, menu
|