import 'package:freezed_annotation/freezed_annotation.dart'; import 'package:trainhub_flutter/domain/entities/chat_session.dart'; import 'package:trainhub_flutter/domain/entities/chat_message.dart'; part 'chat_state.freezed.dart'; enum ThinkingStepStatus { pending, running, completed, error } @freezed class ThinkingStep with _$ThinkingStep { const factory ThinkingStep({ required String id, required String title, @Default(ThinkingStepStatus.running) ThinkingStepStatus status, String? details, }) = _ThinkingStep; } @freezed class ChatState with _$ChatState { const factory ChatState({ @Default([]) List sessions, ChatSessionEntity? activeSession, @Default([]) List messages, @Default(false) bool isTyping, @Default([]) List thinkingSteps, String? streamingContent, }) = _ChatState; }