| import { Layer, ManagedRuntime } from "effect" | |
| import { AppConfig } from "./config" | |
| import { layer as databaseLayer } from "./database" | |
| import { GeoStatRepo } from "./domain/geo" | |
| import { ModelStatRepo } from "./domain/model" | |
| import { ProviderStatRepo } from "./domain/provider" | |
| import { RetentionStatRepo } from "./domain/retention" | |
| const repoLayer = Layer.mergeAll( | |
| ModelStatRepo.layer, | |
| ProviderStatRepo.layer, | |
| GeoStatRepo.layer, | |
| RetentionStatRepo.layer, | |
| ).pipe(Layer.provide(databaseLayer)) | |
| export const layer = Layer.mergeAll(AppConfig.layer, databaseLayer, repoLayer) | |
| export const runtime = ManagedRuntime.make(layer) | |
| export type RuntimeServices = ManagedRuntime.ManagedRuntime.Services<typeof runtime> | |