import { Module } from '@nestjs/common'; import { JwtModule } from '@nestjs/jwt'; import { PassportModule } from '@nestjs/passport'; import { ConfigModule, ConfigService } from '@nestjs/config'; import { AuthController } from './auth.controller'; import { AdminController } from './admin.controller'; import { AuthService } from './auth.service'; import { AdminAnalyticsService } from './admin-analytics.service'; import { JwtStrategy } from './strategies/jwt.strategy'; import { LocalStrategy } from './strategies/local.strategy'; import { UsersModule } from '../users/users.module'; import { OrganizationsModule } from '../organizations/organizations.module'; @Module({ imports: [ UsersModule, OrganizationsModule, PassportModule, JwtModule.registerAsync({ imports: [ConfigModule], inject: [ConfigService], useFactory: (configService: ConfigService) => ({ secret: configService.get('JWT_SECRET'), signOptions: { expiresIn: '24h' }, }), }), ], controllers: [AuthController, AdminController], providers: [AuthService, AdminAnalyticsService, JwtStrategy, LocalStrategy], exports: [AuthService], }) export class AuthModule {}