import { Module } from "@nestjs/common";
import { PrismaModule } from "../prisma/prisma.module";
import { AuthModule } from "../auth/auth.module";
import { KnowledgeService } from "./knowledge.service";
import {
  KnowledgeController,
  KnowledgeCacheController,
  KnowledgeEmbeddingsController,
} from "./knowledge.controller";
import { SearchController } from "./search.controller";
import { KnowledgeStatsController } from "./stats.controller";
import {
  LinkResolutionService,
  SearchService,
  LinkSyncService,
  GraphService,
  StatsService,
  KnowledgeCacheService,
  EmbeddingService,
} from "./services";

@Module({
  imports: [PrismaModule, AuthModule],
  controllers: [
    KnowledgeController,
    KnowledgeCacheController,
    KnowledgeEmbeddingsController,
    SearchController,
    KnowledgeStatsController,
  ],
  providers: [
    KnowledgeService,
    LinkResolutionService,
    SearchService,
    LinkSyncService,
    GraphService,
    StatsService,
    KnowledgeCacheService,
    EmbeddingService,
  ],
  exports: [KnowledgeService, LinkResolutionService, SearchService, EmbeddingService],
})
export class KnowledgeModule {}
