com.convergencelabs.convergence.server.model.domain.chat.ChatState.scala Maven / Gradle / Ivy
/*
* Copyright (c) 2019 - Convergence Labs, Inc.
*
* This file is part of the Convergence Server, which is released under
* the terms of the GNU General Public License version 3 (GPLv3). A copy
* of the GPLv3 should have been provided along with this file, typically
* located in the "LICENSE" file, which is part of this source code package.
* Alternatively, see for the
* full text of the GPLv3 license, if it was not provided.
*/
package com.convergencelabs.convergence.server.model.domain.chat
import java.time.Instant
import com.convergencelabs.convergence.server.model.domain.user.DomainUserId
object ChatState {
def apply(id: String,
chatType: ChatType.Value,
created: Instant,
membership: ChatMembership.Value,
name: String,
topic: String,
lastEventTime: Instant,
lastEventNumber: Long,
members: Set[ChatMember]): ChatState = {
ChatState(id, chatType, created, membership, name, topic, lastEventTime, lastEventNumber, members.map(m => (m.userId, m)).toMap)
}
}
final case class ChatState(id: String,
chatType: ChatType.Value,
created: Instant,
membership: ChatMembership.Value,
name: String,
topic: String,
lastEventTime: Instant,
lastEventNumber: Long,
members: Map[DomainUserId, ChatMember])