import 'package:freezed_annotation/freezed_annotation.dart'; import '../../domain/entities/chat.dart'; import '../../domain/entities/message.dart'; part 'chat_state.freezed.dart'; @freezed class ChatState with _$ChatState { const factory ChatState.initial({@Default({}) Map> typingUsers}) = ChatInitial; const factory ChatState.loading({@Default({}) Map> typingUsers}) = ChatLoading; const factory ChatState.chatsLoaded(List chats, {@Default({}) Map> typingUsers}) = _ChatsLoaded; const factory ChatState.chatSelected(Chat chat, List messages, {@Default({}) Map> typingUsers}) = _ChatSelected; const factory ChatState.messagesLoaded(Chat chat, List messages, {@Default({}) Map> typingUsers}) = _MessagesLoaded; const factory ChatState.error(String message, {@Default({}) Map> typingUsers}) = ChatError; }