11 lines
459 B
Scala
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]]]
|