import { Module } from '@nestjs/common';
import { ConfigModule, ConfigService } from '@nestjs/config';
import { BotService } from './bot.service';
import { PrismaService } from '../common/services/prisma.service';
import { AiService } from 'src/ai/ai.service';
import { NowPaymentsService } from 'src/payments/nowpayments.service';
import { PaystarService } from 'src/payments/paystar.service';
import { UserService } from './services/user.service';
import { MenuService } from './services/menu.service';
import { TestService } from './services/test.service';
import { PaymentService } from './services/payment.service';
import { Telegraf } from 'telegraf';

@Module({
  imports: [ConfigModule],
  providers: [
    BotService,
    PrismaService,
    AiService,
    NowPaymentsService,
    PaystarService,
    UserService,
    MenuService,
    TestService,
    PaymentService,
    {
      provide: 'TELEGRAF_BOT',
      useFactory: (configService: ConfigService) => {
        return new Telegraf(configService.get<string>('BOT_TOKEN')!);
      },
      inject: [ConfigService],
    },
  ],
})
export class BotModule {}