/**
 * Phase 8 — CommunicationsModule.
 * Registers all communications services, providers, worker, and controllers.
 * Imports NotificationsModule for BusinessEventsService.
 * Imports AuditModule for AuditService.
 */
import { Module } from '@nestjs/common';
import { CommunicationsController } from './communications.controller';
import { WebhookController } from './webhook.controller';
import { CommunicationsService } from './communications.service';
import { SettingsService } from './settings.service';
import { TemplateService } from './template.service';
import { PreferencesService } from './preferences.service';
import { CommunicationsWorker } from './communications.worker';
import { DocumentRendererService } from './document-renderer.service';
import { MetaWhatsAppProvider } from './providers/meta-whatsapp.provider';
import { SmtpEmailProvider } from './providers/smtp-email.provider';
import { MockSmsProvider } from './providers/mock-sms.provider';
import { WebhookRateLimitGuard } from './webhook-rate-limit.guard';
import { NotificationsModule } from '../notifications/notifications.module';

@Module({
  imports: [
    NotificationsModule, // for BusinessEventsService export
  ],
  controllers: [
    CommunicationsController,
    WebhookController,
  ],
  providers: [
    CommunicationsService,
    SettingsService,
    TemplateService,
    PreferencesService,
    CommunicationsWorker,
    DocumentRendererService,
    MetaWhatsAppProvider,
    SmtpEmailProvider,
    MockSmsProvider,
    WebhookRateLimitGuard,
  ],
  exports: [
    CommunicationsService,
    SettingsService,
    PreferencesService,
    TemplateService,
  ],
})
export class CommunicationsModule {}
