foyer-dsi-assure-2035/core/src/lu/foyer/EventSourcing.scala

12 lines
459 B
Scala
Raw Normal View History

2025-02-28 05:40:32 +01:00
package lu.foyer
import zio.*
2025-11-04 13:42:19 +01:00
2025-10-13 15:46:22 +02:00
final case class Entity[T](entityId: String, data: T, version: Long)
final case class Event[T](entityId: String, data: T, eventId: String)
2025-10-06 18:30:22 +02:00
2025-10-13 15:46:22 +02:00
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]]]