toModel method

Chat toModel()

Constructs a new Chat from this ChatMixin.

Implementation

Chat toModel() => Chat(
  id,
  avatar: avatar?.toModel(),
  name: name,
  members:
      members.nodes
          .map((e) => ChatMember(e.user.toModel(), e.joinedAt))
          .toList(),
  kindIndex: kind.index,
  isHidden: isHidden,
  muted:
      muted != null
          ? muted!.$$typename == 'MuteForeverDuration'
              ? MuteDuration.forever()
              : MuteDuration.until(
                (muted! as ChatMixin$Muted$MuteUntilDuration).until,
              )
          : null,
  directLink:
      directLink != null
          ? ChatDirectLink(
            slug: directLink!.slug,
            usageCount: directLink!.usageCount,
            createdAt: createdAt,
          )
          : null,
  createdAt: createdAt,
  updatedAt: updatedAt,
  lastReads: lastReads.map((e) => LastChatRead(e.memberId, e.at)).toList(),
  lastDelivery: lastDelivery,
  lastItem: lastItem?.toDto().value,
  lastReadItem: lastReadItem?.toDto().value.id,
  unreadCount: unreadCount,
  totalCount: totalCount,
  ongoingCall: ongoingCall?.toModel(),
  favoritePosition: favoritePosition,
  membersCount: members.totalCount,
);