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]]]
|