import { forwardRef, HttpModule, Module } from '@nestjs/common';
import { EmailModule } from '../email/email.module';
import { SharedModule } from '../shared/shared.module';
import { SlackService } from './slack.service';
import { CreateSlackThreadForTicketWorkflow } from './workflows/create-slack-thread-for-ticket/create-slack-thread-for-ticket.workflow';
import { PostTicketMessageToSlackWorkflow } from './workflows/post-ticket-message-to-slack/post-ticket-message-to-slack.workflow';
import { SlackMessageChangedWorkflow } from './workflows/slack-message-changed/slack-message-changed.workflow';
import { SlackMessageReceivedWorkflow } from './workflows/slack-message-received/slack-message-received.workflow';

@Module({
  providers: [
    SlackService,
    CreateSlackThreadForTicketWorkflow,
    PostTicketMessageToSlackWorkflow,
    SlackMessageReceivedWorkflow,
    SlackMessageChangedWorkflow,
  ],
  imports: [HttpModule, SharedModule, EmailModule],
  exports: [
    SlackService,
    CreateSlackThreadForTicketWorkflow,
    PostTicketMessageToSlackWorkflow,
  ],
})
export class SlackModule {}
