Documentación CHARLA
Elementos del software stateDiagram-v2 [*] --> loading: Inicia Carga
loading --> chatting: Carga OK (Nueva/Retomada)
loading --> readyForQuestions: Carga OK (Sesión ya Completa)
loading --> error: Falla Carga
chatting --> waiting_ai: Enviar Mensaje
waiting_ai --> chatting: Respuesta IA Recibida (Interacciones < Max)
waiting_ai --> readyForQuestions: Respuesta IA Recibida (Interacciones >= Max)
waiting_ai --> chatting: Error IA (Vuelve a permitir input)
readyForQuestions --> answering_questions: Clic Botón "Listo Preguntas"
answering_questions --> questionnaire_finished: Termina Última Pregunta
%% El estado 'waiting_ai' también podría ocurrir brevemente DENTRO de answering_questions
%% mientras se evalúa cada respuesta, pero simplificamos aquí.
questionnaire_finished --> answering_questions: Clic Botón "Repetir" (Si intentos < Max)
questionnaire_finished --> loading: Clic Botón "Siguiente Sesión" (Carga datos nueva sesión)
questionnaire_finished --> course_finished: Clic Botón "Finalizar Curso"
error --> [*] : (Fin por Error)
course_finished --> [*]: (Fin Normal)
%% Transiciones de error menos comunes (podrían ir a 'error' o intentar recuperar a 'chatting')
%% chatting --> error: Error Grave API
%% answering_questions --> error: Error Grave Cuestionario