27 lines
743 B
Kotlin
27 lines
743 B
Kotlin
package eventDemo.business.event.event
|
|
|
|
import eventDemo.business.entity.Card
|
|
import eventDemo.business.entity.GameId
|
|
import eventDemo.business.entity.Player
|
|
import eventDemo.configuration.serializer.UUIDSerializer
|
|
import kotlinx.datetime.Clock
|
|
import kotlinx.datetime.Instant
|
|
import kotlinx.serialization.Serializable
|
|
import java.util.UUID
|
|
|
|
/**
|
|
* An [GameEvent] to represent a played card.
|
|
*/
|
|
@Serializable
|
|
data class CardIsPlayedEvent(
|
|
override val aggregateId: GameId,
|
|
val card: Card,
|
|
override val player: Player,
|
|
override val version: Int,
|
|
) : GameEvent,
|
|
PlayerActionEvent {
|
|
@Serializable(with = UUIDSerializer::class)
|
|
override val eventId: UUID = UUID.randomUUID()
|
|
override val createdAt: Instant = Clock.System.now()
|
|
}
|