Files
flutterApp/lib/features/ai/presentation/bloc/ai_state.dart
2026-02-03 10:13:59 +08:00

48 lines
1.2 KiB
Dart

import 'dart:io';
import 'package:equatable/equatable.dart';
import '../../data/models/chat_message.dart';
import '../../data/models/session.dart';
enum AiStatus { initial, loading, success, failure }
class AiState extends Equatable {
const AiState({
this.status = AiStatus.initial,
this.messages = const <ChatMessage>[],
this.sessions = const <Session>[],
this.selectedImageFile,
this.sessionId,
this.error = '',
});
final AiStatus status;
final List<ChatMessage> messages;
final List<Session> sessions;
final File? selectedImageFile;
final String? sessionId;
final String error;
AiState copyWith({
AiStatus? status,
List<ChatMessage>? messages,
List<Session>? sessions,
File? selectedImageFile,
String? sessionId,
String? error,
}) {
return AiState(
status: status ?? this.status,
messages: messages ?? this.messages,
sessions: sessions ?? this.sessions,
selectedImageFile: selectedImageFile ?? this.selectedImageFile,
sessionId: sessionId ?? this.sessionId,
error: error ?? this.error,
);
}
@override
List<Object?> get props => [status, messages, sessions, selectedImageFile, sessionId, error];
}