createConversation method

Future<Conversation> createConversation({
  1. required ConversationMode mode,
  2. ConversationType type = ConversationType.group,
  3. String? name,
  4. List<String>? participantIds,
  5. Duration? expiresIn,
  6. Map<String, dynamic>? extra,
})

Create a new conversation.

mode is required. type defaults to ConversationType.group. expiresIn is optional expiry duration for ephemeral conversations.

Implementation

Future<Conversation> createConversation({
  required ConversationMode mode,
  ConversationType type = ConversationType.group,
  String? name,
  List<String>? participantIds,
  Duration? expiresIn,
  Map<String, dynamic>?
      extra, // For future extensibility (e.g. displayName, avatarUrl)
}) async {
  _ensureInitialized();
  final createdConversation = await _registry.adapter.createConversation(
    CreateConversationParams(
      type: type,
      mode: mode,
      name: name,
      participantIds: participantIds,
      expiresIn: expiresIn,
      extra: extra,
    ),
  );
  final conversation =
      await _registry.adapter.getConversation(createdConversation.id);
  await _database.insertConversation(conversation!);
  return _stampCurrentUser(conversation);
}