export class Bookings extends Context.Tag('Service/Bookings')<
Bookings,
{
list: Effect.Effect<Booking.Booking[], DatabaseError>
}
>() {
static Live = pipe(
Effect.all([Database, IdGenerator]),
Effect.map(([db, idGen]) => Bookings.of({
list: pipe(
Ops.list,
Effect.provideService(Database, db),
Effect.map(Array.map(Booking.decodeStored))
)
}))
)
}
export class Bookings extends Context.Tag('Service/Bookings')<
Bookings,
{
list: Effect.Effect<Booking.Booking[], DatabaseError>
}
>() {
static Live = pipe(
Effect.all([Database, IdGenerator]),
Effect.map(([db, idGen]) => Bookings.of({
list: pipe(
Ops.list,
Effect.provideService(Database, db),
Effect.map(Array.map(Booking.decodeStored))
)
}))
)
}