import { Module } from '@nestjs/common';
import { PrismaModule } from '@core/database/prisma/prisma.module';
import { KnowledgeBaseController } from './knowledge-base.controller';
import { KnowledgeBaseService } from './knowledge-base.service';
import { KnowledgeArticleService } from './knowledge-article.service';
import { SharePointSyncService } from './services/sharepoint-sync.service';
import { RagflowService } from './services/ragflow.service';
import { RagflowSearchService } from './services/ragflow-search.service';
import { RagflowSyncService } from './services/ragflow-sync.service';
import { KnowledgeQaService } from './services/knowledge-qa.service';
import { ProseMirrorTextService } from './services/prosemirror-text.service';
import { MetricsService } from './services/metrics.service';
import { ActivityService } from './services/activity.service';
import { SearchSuggestionService } from './services/search-suggestion.service';
import { SyncSchedulerTask } from './tasks/sync-scheduler.task';

// 注意：ScheduleModule.forRoot() 已在 app.module.ts 中调用，子模块无需重复导入
@Module({
  imports: [PrismaModule],
  controllers: [KnowledgeBaseController],
  providers: [
    KnowledgeBaseService,
    KnowledgeArticleService,
    SharePointSyncService,
    RagflowService,
    RagflowSearchService,
    RagflowSyncService,
    KnowledgeQaService,
    ProseMirrorTextService,
    MetricsService,
    ActivityService,
    SearchSuggestionService,
    SyncSchedulerTask,
  ],
  exports: [
    KnowledgeBaseService,
    SharePointSyncService,
    RagflowService,
    RagflowSearchService,
    RagflowSyncService,
    KnowledgeQaService,
    ProseMirrorTextService,
    MetricsService,
    ActivityService,
    SearchSuggestionService,
  ],
})
export class KnowledgeBaseModule {}
