foyer-dsi-assure-2035/core/src/lu/foyer/EventSourcing.scala
Paul-Henri Froidmont 868f44e90e
Move reducer
2025-11-04 18:23:30 +01:00

11 lines
459 B
Scala

package lu.foyer
import zio.*
final case class Entity[T](entityId: String, data: T, version: Long)
final case class Event[T](entityId: String, data: T, eventId: String)
trait StateRepository[Data] extends Repository[Entity[Data], String]
trait EventRepository[Data] extends Repository[Event[Data], String]:
def fetchOne(entityId: String, eventId: String): Task[Option[Event[Data]]]
def fetchMany(entityId: String, page: Page): Task[Paged[Event[Data]]]