import { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';
import { MessageModule } from '../message/message.module';
import { SessionModule } from '../session/session.module';
import { WebhookModule } from '../webhook/webhook.module';
import { UltramsgCompatService } from './ultramsg-compat.service';
import { UltramsgMediaController } from './ultramsg-media.controller';
import { UltramsgMediaService } from './ultramsg-media.service';
import { UltramsgSendController } from './ultramsg-send.controller';
import { ultramsgTokenMiddleware } from './ultramsg-token.middleware';

@Module({
  imports: [MessageModule, SessionModule, WebhookModule],
  controllers: [UltramsgSendController, UltramsgMediaController],
  providers: [UltramsgCompatService, UltramsgMediaService],
})
export class UltramsgCompatModule implements NestModule {
  configure(consumer: MiddlewareConsumer): void {
    consumer.apply(ultramsgTokenMiddleware).forRoutes(UltramsgSendController);
  }
}
