build method

  1. @override
Map<String, dynamic> build()
override

Implementation

@override
Map<String, dynamic> build() {
  return {
    if (_type != null) 'type': _type.value,
    if (_name != null) 'name': _name,
    if (_topic != null) 'topic': _topic,
    if (_position != null) 'position': _position,
    if (_bitrate != null) 'bitrate': _bitrate,
    if (_userLimit != null) 'user_limit': _userLimit,
    if (_rateLimitPerUser != null) 'rate_limit_per_user': _rateLimitPerUser!.inSeconds,
    if (_permissionOverwrites.isNotEmpty)
      'permission_overwrites': _permissionOverwrites
          .map((element) => {
                'id': element.id,
                'type': element.type.value,
                'allow': listToBitfield(element.allow),
                'deny': listToBitfield(element.deny),
              })
          .toList(),
    if (_parentId != null) 'parent_id': _parentId,
    if (_nsfw != null) 'nsfw': _nsfw,
    if (_rtcRegion != null) 'rtc_region': _rtcRegion,
    if (_videoQualityMode != null) 'video_quality_mode': _videoQualityMode?.value,
    if (_defaultAutoArchiveDuration != null)
      'default_auto_archive_duration': _defaultAutoArchiveDuration!.inMinutes,
    if (_defaultForumLayout != null) 'default_forum_layout': _defaultForumLayout,
    if (_defaultReactionEmoji != null)
      'default_reaction_emoji': {
        'emoji_id': _defaultReactionEmoji?.id,
        'emoji_name': _defaultReactionEmoji?.name,
      },
    if (_defaultSortOrder != null) 'default_sort_order': _defaultSortOrder,
    if (_defaultThreadRateLimitPerUser != null)
      'default_thread_rate_limit_per_user': _defaultThreadRateLimitPerUser!.inSeconds,
  };
}