awary/server/src/core/features/metrics/index.ts

36 lines
1 KiB
TypeScript
Raw Normal View History

2025-06-11 09:50:52 +02:00
import {Feature, AppServices} from "@app/core/Feature";
import {ProjectFeature} from "../projects";
import {UserFeature} from "../users";
import {MetricEvents} from "./MetricsEvents";
import {MetricsRepository} from "./MetricsRepository";
import {MetricsUseCases} from "./MetricsUseCases";
export * from "./MetricsUseCases"
export * from "./entities"
export type MetricFeatureDependencies = {
userFeature: UserFeature
projectFeature: ProjectFeature
}
export class MetricFeature extends Feature {
name = "Metric"
events: MetricEvents = new MetricEvents()
dependencies: MetricFeatureDependencies
repository: MetricsRepository
useCases: MetricsUseCases
constructor(services: AppServices, dependencies: MetricFeatureDependencies) {
super(services);
this.repository = new MetricsRepository(services.db)
this.dependencies = dependencies
this.useCases = new MetricsUseCases({
projectService: this.dependencies.projectFeature.service,
metricRepository: this.repository,
metricEvents: this.events
})
}
}