import { Module } from "@nestjs/common";
import { ConfigModule } from "@nestjs/config";
import { ScheduleModule } from "@nestjs/schedule";

import { SocialPosterService } from "./social-poster.service";
import { ImageRendererService } from "./image-renderer.service";
import { CaptionGeneratorService } from "./caption-generator.service";
import { TwitterService } from "./twitter.service";
import { MetaService } from "./meta.service";

import { SocialPosterController } from "./social-poster.controller";

/**
 * Social Poster Module
 *
 * Automates the generation of prediction cards and social media posting
 * to X (Twitter), Facebook, and Instagram for upcoming matches.
 */
@Module({
  imports: [ConfigModule, ScheduleModule.forRoot()],
  controllers: [SocialPosterController],
  providers: [
    SocialPosterService,
    ImageRendererService,
    CaptionGeneratorService,
    TwitterService,
    MetaService,
  ],
  exports: [SocialPosterService],
})
export class SocialPosterModule {}
