import { Global, Module } from '@nestjs/common'; import { NabehModule } from '../nabeh/nabeh.module'; import { OtpDispatcher } from './otp-dispatcher.service'; import { OTP_PROVIDERS } from './otp-provider.interface'; import { NabehOtpProvider } from './providers/nabeh.provider'; import { KazumiSmsProvider } from './providers/kazumi.provider'; /** * توجيه OTP متعدد المزوّدين (docs/17 — D5). عالمي: `OtpDispatcher` يُستدعى من * كل مسار يرسل رمزاً. لإضافة مزوّد: أضِف موفّره هنا وسجّله في مصفوفة * `OTP_PROVIDERS` وأضِف اسمه لسلسلة دولته في `otp-dispatcher.service.ts`. */ @Global() @Module({ imports: [NabehModule], providers: [ NabehOtpProvider, KazumiSmsProvider, { provide: OTP_PROVIDERS, useFactory: (nabeh: NabehOtpProvider, kazumi: KazumiSmsProvider) => [nabeh, kazumi], inject: [NabehOtpProvider, KazumiSmsProvider], }, OtpDispatcher, ], exports: [OtpDispatcher], }) export class OtpModule {}