import 'package:json_annotation/json_annotation.dart'; import 'package:stream_chat/src/client.dart'; import 'package:stream_chat/src/models/channel_model.dart'; import 'package:stream_chat/src/models/channel_state.dart'; import 'package:stream_chat/src/models/device.dart'; import 'package:stream_chat/src/models/event.dart'; import 'package:stream_chat/src/models/member.dart'; import 'package:stream_chat/src/models/message.dart'; import 'package:stream_chat/src/models/reaction.dart'; import 'package:stream_chat/src/models/read.dart'; import 'package:stream_chat/src/models/user.dart'; part 'responses.g.dart'; class _BaseResponse { String? duration; } /// Model response for [StreamChatClient.resync] api call @JsonSerializable(createToJson: false) class SyncResponse extends _BaseResponse { /// The list of events @JsonKey(defaultValue: []) late List events; /// Create a new instance from a json static SyncResponse fromJson(Map json) => _$SyncResponseFromJson(json); } /// Model response for [StreamChatClient.queryChannels] api call @JsonSerializable(createToJson: false) class QueryChannelsResponse extends _BaseResponse { /// List of channels state returned by the query @JsonKey(defaultValue: []) late List channels; /// Create a new instance from a json static QueryChannelsResponse fromJson(Map json) => _$QueryChannelsResponseFromJson(json); } /// Model response for [StreamChatClient.queryChannels] api call @JsonSerializable(createToJson: false) class TranslateMessageResponse extends _BaseResponse { /// Translated message late TranslatedMessage message; /// Create a new instance from a json static TranslateMessageResponse fromJson(Map json) => _$TranslateMessageResponseFromJson(json); } /// Model response for [StreamChatClient.queryChannels] api call @JsonSerializable(createToJson: false) class QueryMembersResponse extends _BaseResponse { /// List of channels state returned by the query @JsonKey(defaultValue: []) late List members; /// Create a new instance from a json static QueryMembersResponse fromJson(Map json) => _$QueryMembersResponseFromJson(json); } /// Model response for [StreamChatClient.queryUsers] api call @JsonSerializable(createToJson: false) class QueryUsersResponse extends _BaseResponse { /// List of users returned by the query @JsonKey(defaultValue: []) late List users; /// Create a new instance from a json static QueryUsersResponse fromJson(Map json) => _$QueryUsersResponseFromJson(json); } /// Model response for [channel.getReactions] api call @JsonSerializable(createToJson: false) class QueryReactionsResponse extends _BaseResponse { /// List of reactions returned by the query @JsonKey(defaultValue: []) late List reactions; /// Create a new instance from a json static QueryReactionsResponse fromJson(Map json) => _$QueryReactionsResponseFromJson(json); } /// Model response for [Channel.getReplies] api call @JsonSerializable(createToJson: false) class QueryRepliesResponse extends _BaseResponse { /// List of messages returned by the api call @JsonKey(defaultValue: []) late List messages; /// Create a new instance from a json static QueryRepliesResponse fromJson(Map json) => _$QueryRepliesResponseFromJson(json); } /// Model response for [StreamChatClient.getDevices] api call @JsonSerializable(createToJson: false) class ListDevicesResponse extends _BaseResponse { /// List of user devices @JsonKey(defaultValue: []) late List devices; /// Create a new instance from a json static ListDevicesResponse fromJson(Map json) => _$ListDevicesResponseFromJson(json); } /// Model response for [Channel.sendFile] api call @JsonSerializable(createToJson: false) class SendFileResponse extends _BaseResponse { /// The url of the uploaded file late String file; /// Create a new instance from a json static SendFileResponse fromJson(Map json) => _$SendFileResponseFromJson(json); } /// Model response for [Channel.sendImage] api call @JsonSerializable(createToJson: false) class SendImageResponse extends _BaseResponse { /// The url of the uploaded file late String file; /// Create a new instance from a json static SendImageResponse fromJson(Map json) => _$SendImageResponseFromJson(json); } /// Model response for [Channel.sendReaction] api call @JsonSerializable(createToJson: false) class SendReactionResponse extends _BaseResponse { /// Message returned by the api call late Message message; /// The reaction created by the api call late Reaction reaction; /// Create a new instance from a json static SendReactionResponse fromJson(Map json) => _$SendReactionResponseFromJson(json); } /// Model response for [StreamChatClient.connectGuestUser] api call @JsonSerializable(createToJson: false) class ConnectGuestUserResponse extends _BaseResponse { /// Guest user access token late String accessToken; /// Guest user late User user; /// Create a new instance from a json static ConnectGuestUserResponse fromJson(Map json) => _$ConnectGuestUserResponseFromJson(json); } /// Model response for [StreamChatClient.updateUser] api call @JsonSerializable(createToJson: false) class UpdateUsersResponse extends _BaseResponse { /// Updated users @JsonKey(defaultValue: {}) late Map users; /// Create a new instance from a json static UpdateUsersResponse fromJson(Map json) => _$UpdateUsersResponseFromJson(json); } /// Model response for [StreamChatClient.updateMessage] api call @JsonSerializable(createToJson: false) class UpdateMessageResponse extends _BaseResponse { /// Message returned by the api call late Message message; /// Create a new instance from a json static UpdateMessageResponse fromJson(Map json) => _$UpdateMessageResponseFromJson(json); } /// Model response for [Channel.sendMessage] api call @JsonSerializable(createToJson: false) class SendMessageResponse extends _BaseResponse { /// Message returned by the api call late Message message; /// Create a new instance from a json static SendMessageResponse fromJson(Map json) => _$SendMessageResponseFromJson(json); } /// Model response for [StreamChatClient.getMessage] api call @JsonSerializable(createToJson: false) class GetMessageResponse extends _BaseResponse { /// Message returned by the api call late Message message; /// Channel of the message ChannelModel? channel; /// Create a new instance from a json static GetMessageResponse fromJson(Map json) { final res = _$GetMessageResponseFromJson(json); final jsonChannel = res.message.extraData.remove('channel'); if (jsonChannel != null) { res.channel = ChannelModel.fromJson(jsonChannel as Map); } return res; } } /// Model response for [StreamChatClient.search] api call @JsonSerializable(createToJson: false) class SearchMessagesResponse extends _BaseResponse { /// List of messages returned by the api call @JsonKey(defaultValue: []) late List results; /// Create a new instance from a json static SearchMessagesResponse fromJson(Map json) => _$SearchMessagesResponseFromJson(json); } /// Model response for [Channel.getMessagesById] api call @JsonSerializable(createToJson: false) class GetMessagesByIdResponse extends _BaseResponse { /// Message returned by the api call @JsonKey(defaultValue: []) late List messages; /// Create a new instance from a json static GetMessagesByIdResponse fromJson(Map json) => _$GetMessagesByIdResponseFromJson(json); } /// Model response for [Channel.update] api call @JsonSerializable(createToJson: false) class UpdateChannelResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members List? members; /// Message returned by the api call Message? message; /// Create a new instance from a json static UpdateChannelResponse fromJson(Map json) => _$UpdateChannelResponseFromJson(json); } /// Model response for [Channel.updatePartial] api call @JsonSerializable(createToJson: false) class PartialUpdateChannelResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members List? members; /// Create a new instance from a json static PartialUpdateChannelResponse fromJson(Map json) => _$PartialUpdateChannelResponseFromJson(json); } /// Model response for [Channel.inviteMembers] api call @JsonSerializable(createToJson: false) class InviteMembersResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members @JsonKey(defaultValue: []) late List members; /// Message returned by the api call Message? message; /// Create a new instance from a json static InviteMembersResponse fromJson(Map json) => _$InviteMembersResponseFromJson(json); } /// Model response for [Channel.removeMembers] api call @JsonSerializable(createToJson: false) class RemoveMembersResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members @JsonKey(defaultValue: []) late List members; /// Message returned by the api call Message? message; /// Create a new instance from a json static RemoveMembersResponse fromJson(Map json) => _$RemoveMembersResponseFromJson(json); } /// Model response for [Channel.sendAction] api call @JsonSerializable(createToJson: false) class SendActionResponse extends _BaseResponse { /// Message returned by the api call Message? message; /// Create a new instance from a json static SendActionResponse fromJson(Map json) => _$SendActionResponseFromJson(json); } /// Model response for [Channel.addMembers] api call @JsonSerializable(createToJson: false) class AddMembersResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members @JsonKey(defaultValue: []) late List members; /// Message returned by the api call Message? message; /// Create a new instance from a json static AddMembersResponse fromJson(Map json) => _$AddMembersResponseFromJson(json); } /// Model response for [Channel.acceptInvite] api call @JsonSerializable(createToJson: false) class AcceptInviteResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members @JsonKey(defaultValue: []) late List members; /// Message returned by the api call Message? message; /// Create a new instance from a json static AcceptInviteResponse fromJson(Map json) => _$AcceptInviteResponseFromJson(json); } /// Model response for [Channel.rejectInvite] api call @JsonSerializable(createToJson: false) class RejectInviteResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// Channel members @JsonKey(defaultValue: []) late List members; /// Message returned by the api call Message? message; /// Create a new instance from a json static RejectInviteResponse fromJson(Map json) => _$RejectInviteResponseFromJson(json); } /// Model response for empty responses @JsonSerializable(createToJson: false) class EmptyResponse extends _BaseResponse { /// Create a new instance from a json static EmptyResponse fromJson(Map json) => _$EmptyResponseFromJson(json); } /// Model response for [Channel.query] api call @JsonSerializable(createToJson: false) class ChannelStateResponse extends _BaseResponse { /// Updated channel late ChannelModel channel; /// List of messages returned by the api call @JsonKey(defaultValue: []) late List messages; /// Channel members @JsonKey(defaultValue: []) late List members; /// Number of users watching the channel @JsonKey(defaultValue: 0) late int watcherCount; /// List of read states @JsonKey(defaultValue: []) late List read; /// Create a new instance from a json static ChannelStateResponse fromJson(Map json) => _$ChannelStateResponseFromJson(json); }