import { Module } from '@nestjs/common'; import { BullModule } from '@nestjs/bullmq'; import { DatabaseModule } from '../../database/database.module'; import { GeminiModule } from '../gemini/gemini.module'; // Controllers import { ProjectsController, ScriptsController, ResearchController, AnalysisController, VersionsController, } from './controllers'; import { JobsController } from './controllers/jobs.controller'; // Services import { ProjectsService, ScriptsService, ResearchService, AnalysisService, VersionsService, } from './services'; // Queue import { QUEUES } from './queue/queue.constants'; import { ScriptProcessor } from './queue/script.processor'; import { ResearchProcessor } from './queue/research.processor'; import { AnalysisProcessor } from './queue/analysis.processor'; // Gateway (WebSocket) import { SkriptaiGateway } from './gateway/skriptai.gateway'; import { QueueEventBridge } from './gateway/queue-event-bridge'; /** * SkriptAI Module * * Main module for the SkriptAI feature - AI-powered video script generation. * * Features: * - Project management (CRUD, duplicate, export) * - Script generation and editing * - Deep research with AI * - Neuro Marketing analysis * - YouTube audit * - Commercial brief generation * - Version history & content management * - BullMQ async job processing * * TR: SkriptAI ana modülü - AI destekli video script üretimi. */ @Module({ imports: [ DatabaseModule, GeminiModule, // BullMQ Queues BullModule.registerQueue( { name: QUEUES.SCRIPT_GENERATION }, { name: QUEUES.DEEP_RESEARCH }, { name: QUEUES.ANALYSIS }, { name: QUEUES.IMAGE_GENERATION }, ), ], controllers: [ ProjectsController, ScriptsController, ResearchController, AnalysisController, VersionsController, JobsController, ], providers: [ ProjectsService, ScriptsService, ResearchService, AnalysisService, VersionsService, // Queue Processors ScriptProcessor, ResearchProcessor, AnalysisProcessor, // WebSocket SkriptaiGateway, QueueEventBridge, ], exports: [ ProjectsService, ScriptsService, ResearchService, AnalysisService, VersionsService, ], }) export class SkriptaiModule {}