import { Module, forwardRef } from "@nestjs/common";
import { TypeOrmModule } from "@nestjs/typeorm";
import { HttpModule } from "@nestjs/axios";
import { UserModule } from "../user/user.module";
import { TimescaleModule } from "../timescale/timescale.module";
import { RepoFilterModule } from "../common/filters/repo-filter.module";
import { DbReleaseGitHubEvent } from "../timescale/entities/release_github_events_histogram.entity";
import { SBOMService } from "../sbom/sbom.service";
import { DbRepo, DbRepoWithStats } from "./entities/repo.entity";
import { RepoService } from "./repo.service";
import { RepoController } from "./repo.controller";
@Module({
imports: [
forwardRef(() => TimescaleModule),
forwardRef(() => UserModule),
TypeOrmModule.forFeature([DbRepo, DbRepoWithStats], "ApiConnection"),
TypeOrmModule.forFeature([DbReleaseGitHubEvent], "TimescaleConnection"),
RepoFilterModule,
HttpModule,
],
controllers: [RepoController],
providers: [RepoService, SBOMService],
exports: [RepoService],
})
export class RepoModule {}