import { Module } from '@nestjs/common'; import { APP_GUARD } from '@nestjs/core'; import { SessionsModule } from '../auth/sessions.module'; import { MailModule } from '../mail/mail.module'; import { PondsModule } from '../ponds/ponds.module'; import { SettingsModule } from '../settings/settings.module'; import { UsersModule } from '../users/users.module'; import { SetupController } from './setup.controller'; import { SetupGuard } from './setup.guard'; import { SetupService } from './setup.service'; import { SetupStateService } from './setup-state.service'; /** * First-run setup wizard (issue #80). Imported in AppModule BEFORE * AuthModule on purpose: global guards run in registration order, and the * setup gate must answer 503 `setup_required` before AuthGuard could turn * the same request into a misleading 401. */ @Module({ imports: [SettingsModule, UsersModule, PondsModule, SessionsModule, MailModule], controllers: [SetupController], providers: [SetupService, SetupStateService, { provide: APP_GUARD, useClass: SetupGuard }], exports: [SetupService, SetupStateService], }) export class SetupModule {}